查看原文
其他

PDF转docx可批量操作?——wordconvert的小技巧

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:李嘉琪,中南财经政法大学金融学院

本文编辑:谭   可

技术总编:戴   雯

Stata&Python云端课程来啦!

       为了平衡团队运营成本,维系公众号的运营,也与国内动辄数千元的Stata课程缩短差距,我们的网课不得不上调价格,我们决定于2022年1月15日起调价,Python课程的价格调整为299.9元Stata进阶课程调为299.9元Stata基础课程调整到329.9元。大家可以告知一下身边想要购买的小伙伴,欲购从速哦,对报名有任何疑问欢迎在公众号后台和腾讯课堂留言~我们在这篇推文提供了每门课程的课程二维码,大家有需要的话可以直接扫描二维码查看课程详情并进行购买哦~此外,凭准考证和任意一篇推文集够50个赞,购买爬虫俱乐部的主要课程,即可获得50元的优惠,大家赶快行动起来吧~



导读相信各位读者在日常工作和学习中,会遇到一些情况,需要把pdf文件批量转成docx文件,这个时候我们常常会束手无策,或者一个一个手动操作,但这会浪费我们宝贵的时间。不过,我们爬虫俱乐部已经开发出了一个命令wordconvert,wordconvert调用PowerShell和Microsoft Word实现rtf、doc、dot、docx、pdf 以及xps格式文件的相互转换。用这个命令,可以轻松的实现我们的需求。感兴趣的话,就继续看下去吧。

我们要想使用这个强大的命令wordconvert,就要保证电脑里面装有Microsoft Word2007或更高的版本。并且需要配置好PowerShell脚本执行权限和环境变量:把PowerShell的ExecutionPolicy设置为RemoteSigned,将PowerShell所在的路径添加到环境变量中。具体的操作步骤请大家参考《玩转word文档“大变身”——wordconvert》这篇推文吧。

以上工作做好了后,我们就在stata中安装该命令:

ssc install wordconvert, replace

wordconvert的语法非常简单:

wordconvert old_file.extension new_file.extension,[options]

其中:old_file.extension指的是需要转换的文件,new_file.extension指的是要转换成的文件。选项只有两个:replace和replace  encoding(),如果需要转换的文件中有中文字符或者文件名中有中文,我们一般使用replace   encoding(gb2312)。

下面,小编给大家举例说明如何运用wordconvert命令把pdf文件批量转成docx文件吧。我们先从The National Bureau of Economic Research(网址:https://www.nber.org/)上下载3篇最近的working paper,作为我们转换的素材文件。
clear allcap mkdir d:/wordconvert/cd d:/wordconvert/forvalues i = 28865/28867{ copy "https://www.nber.org/papers/w`i'.pdf" w`i'.pdf, replace}
可以得到如下三个文件

接下来,我们可以使用wordconvert命令把pdf文件转成docx文件,我们先转换一个。
wordconvert "w28865.pdf" "w28865.docx", replace

因为这个文件的文件名以及文件里面都没有中文字符,所以我们没有加“encoding(gb2312)”的选项。我们打开docx文件可以看到,除了一些模型公式的格式不太准确之外,其他的诸如正文、表格等内容都转换得很好。

那一个文件可以成功,要想转换多个文件,我们只需要进行循环,批量处理即可。程序如下:

local file: dir "." files "*.pdf"foreach file in `file'{ wordconvert "`file'" "`file'.docx", replace }

然后,我们就可以惊喜的发现,三个文件都被转换为了docx文件,如下图,但结果不尽如人意,因为docx文件名称中含有.pdf字样。


此时我们就需要用另一个有用的命令,即filesearch命令。

此命令的用法结构如下:

filesearch [[`]"]pattern["[']] [, options]

我们只在此处只介绍两个选项:

(1)regexpression:匹配模式将被识别为正则表达式;

(2)strip:删除检索结果中符合匹配模式的部分;

在此处,我们使用strip选项即可删除检索结果中符合匹配模式的部分,在此需要匹配的是文件名结尾处的“.pdf”,注意要加上regex选项,因为我们使用“$”来匹配末尾位置。
那么我们的命令就可以写成如下的程序:
clear allcap mkdir d:/wordconvert1/cd d:/wordconvert1/forvalues i = 28865/28867{ copy "https://www.nber.org/papers/w`i'.pdf" w`i'.pdf, replace}filesearch \.pdf$, strip regexforeach x in `r(filenames)'{ wordconvert "`x'.pdf" "`x'.docx", replace }
我们看到,最后转换成的docx文件的名称中,已不再含有“.pdf”。

通过这个方法,我们就可以把所有的pdf文件批量转成docx文件,这个方法是不是很有用呢,希望在各位读者未来的工作学习中,也可以运用这个方法和命令,简化工作程序,提高工作效率。

END
最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。




腾讯课堂课程二维码








            


 对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!











往期推文推荐

       考研之后,文科生需以“do”躬“do”!

       手绘五星兴家国——用Stata绘制五星红旗

       Seminar丨董事会的性别多样化和企业创新:来自国际的证据

      Python与数据库交互——窗口函数

       Stata之post命令——数据邮递 

       爬虫俱乐部成员的Stata学习经验分享来啦!

       Seminar丨2002年萨班斯·奥克斯利法案的经济后果

        我几乎画出了“隔壁三哥”家的国旗

        Python基础——三大数字类型,你都了解吗?
        如何用Stata绘制带指向性箭头标注的图像       
        Seminar丨荐仆贷款——19世纪中国的信任辅助贷款【技能篇】多进程队列间通信

Seminar丨公司董事会的人才增长:来自中国的证据

正则表达式--懒惰模式

爬完独立董事的年薪,我的眼镜跌破了!识别旅游“照骗”——看风景名胜是否名副其实主成分分析的Python实现

正则表达式--贪婪模式

Seminar丨谁更重要:高管股权薪酬与财务报告欺诈DOS能量,超乎你想象!

爬虫实战丨走进哈利波特的魔法世界

数据集合并的新路子-frlink命令

Seminar丨附近的公司:利用卫星图像研究本地信息优势

线性同余法生成伪随机数 

[技能篇]多线程爬虫

“好哭”是衡量一部好电影的标准吗?

Stata&Python云端课程来啦!

带你了解Stata中的矩阵

Seminar|总统的朋友:政治关联与企业价值
爬虫实战 | 爬取中国天气网

爬虫实战 | 爬取东方财富网经济数据——以居民消费价格指数(CPI)为例

Seminar|媒体关联董事对融资和外部治理的影响神奇的组内交叉合并 PDF分章节转TXT并实现可视化——以胡景北知青日记1971至1978年为例

万物皆可开——shellout妙用

关于我们 


   微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

   武汉字符串数据科技有限公司一直为广大用户提供数据采集和分析的服务工作,如果您有这方面的需求,请发邮件到statatraining@163.com,或者直接联系我们的数据中台总工程司海涛先生,电话:18203668525,wechat: super4ht。海涛先生曾长期在香港大学从事研究工作,现为知名985大学的博士生,爬虫俱乐部网络爬虫技术和正则表达式的课程负责人。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里
为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众
号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存