python批量将pdf转换成txt,pythonpdf怎么转换成word
同一个操作做两次,就要考虑自动化了!
大家好,又是Python办公自动化。
今天的演讲是关于你将会接触到的PDF转换。有许多第三方工具和网站可用于将各种格式的文件转换为PDF。但是使用Python的好处不仅仅是批量转换,脚本一写就一键执行,彻底解放了你的双手。然后,本文将讨论如何使用Python将Word/Excel/PPT/Markdown/Html等各种格式的文件转换成PDF!
Word转PDF
从Word转换成PDF应该是最常见的需求。毕竟用PDF格式显示文档更方便。虽然在Word中可以直接导出为PDF格式,但是使用Python进行批量转换效率更高。
目前Python中有很多把word转换成pdf的库。比如win32可以调用word的底层vba,将word转换成pdf,或者comtypes等。但是这些常用的库只能在Windows机器上运行。所以为了照顾mac用户,本文使用了一个比较小的库docx2pdf,专门用来把Word转换成pdf。它很容易安装。
pip安装docx2pdf
它也比win32和其他库更简洁。可以导入一行代码,也可以转换一行代码。
从docx2pdf导入转换
转换( input.docx , output.pdf )
但是有人会说,虽然简单,但是这个操作word本身就可以完成。好,接下来,放大。我们可以使用下面的代码来查找当前或指定文件夹中的所有word文件。
#查找当前目录中的所有word文件
导入操作系统
导入全球
从pathlib导入路径
path=os.getcwd() /
P=Path(Path) #初始化Path对象。
FileList=list(p.glob(**/*)。docx ))
接下来,只需编写一个循环,将该目录中的所有单词一次性转换为PDF。
对于文件列表中的文件:
convert(file,f“{ file }。pdf’)
就是这样。在不到10行代码中,只需要一秒钟就可以轻松将指定文件夹中的5个Word副本转换成PDF。现在,我们也可以使用我们以前的自动化系列文章中编写的批量合并PDF来一次单击合并这5个PDF!
Excel到PDF
Excel转PDF可能不常用,但作为Office中的重要工具,而且转换后的表格可以复制,就说一下吧。使用的工具既不是常用的openpyxl,也不是pandas,而是另一个专门用于pdf处理的库fpdf。
进口熊猫作为pd
将numpy作为np导入
df_1=pd。DataFrame(np.random.randn(10,2),columns=list(AB ))
为了便于解释,我们使用Pandas和NumPy创建一个样本数据文件,当然也可以使用本地读取。
现在您可以使用下面的代码将这个表单转换成PDF。
从fpdf进口FPDF
pdf=FPDF()
pdf.add_page()
pdf.set_xy(0,0)
pdf.set_font(arial, B ,14)
pdf.cell(60)
pdf.cell(70,10, Excel到pdf ,0,2, C )
pdf.cell(-40)
pdf.cell(50,10,索引列,1,0, C )
pdf.cell(40,10, A ,1,0, C )
pdf.cell(40,10, B ,1,2, C )
pdf.cell(-90)
pdf.set_font(arial ,,12)
对于范围(0,len(df_1))中的I:
col_ind=str(i)
col_a=str(df_1。A.iloc[i])
col_b=str(df_1。B.iloc[i])
pdf.cell(50,10, %s % (col_ind),1,0, C )
pdf.cell(40,10, %s % (col_a),0,0, C )
pdf.cell(40,10, %s % (col_b),0,2, C )
pdf.cell(-90)
pdf.output(Excel2PDF.pdf , F )
其实思路和openpyxl差不多,遍历每个单元格,写数据,只是现在写成了PDF文件。
PPT到PDF
本节介绍如何将PPT转换成PDF,但是我找了一大圈却没有MAC用户可以实现的方法,所以只能针对Windows操作,用的是word2pdf里面提到的comtypes。
导入系统
导入操作系统
导入comtypes.client
#设定路径
输入文件路径=sys.argv[1]
输出文件路径=sys.argv[2]
输入文件路径=os.path.abspath(输入文件路径)
输出文件路径=os.path.abspath(输出文件路径)
#创建PDF
Powerpoint=com types . client . createobject( Powerpoint。应用程序’)
powerpoint。可见=1
幻灯片=powerpoint。演示文稿。打开(输入文件路径)
#保存PDF
幻灯片。另存为(输出文件路径,32)
幻灯片。关闭()
相关参数和细节可以在comtypes官方文档中找到。因为我是mac,所以没怎么研究过。转换成功后,我可以结合我们之前的批量操作,合并实现自动化!
Md到pdf
关于markdown转pdf,几乎所有markdown编辑器都支持导出为pdf格式。我以为这个需求不高,但是我发现很多外国人做了很多md转pdf的轮子,比如md2pdf,markdown2pdf,md2pdf-client等等。因为大多数博客使用markdown格式,所以可以使用这些库将博客文章转换为PDF文档,以便批量存储。
大家早起试了一圈,找到了一个语法最简单的markdown2pdf3。直接用pip安装就行了,用两行代码把一个md文件转换成pdf。
从markdown2pdf3导入*
convert _ markdown _ to _ pdf( test . MD )#您的markdown文件路径
不过需要注意的是,如果你有中文,需要做一些额外的设置,可以参考官方文档。但是,现在你可以将指定路径中的所有markdown文件批量转换为pdf,方法是结合前面的Word to PDF。例如,可以使用下面的代码查找当前文件夹中的所有md文件。
导入操作系统
导入全球
从pathlib导入路径
path=os.getcwd() /
P=Path(Path) #初始化Path对象。
FileList=list(p.glob(**/*)。MD’))
Html到pdf
关于html,也就是把网页转换成PDF,是我最常遇到的问题。其实很简单。这篇文章里提到了在Selenium里爬微信官方账号所有文章之前先用PDFKIT,但是直接用pip安装pdfkit是不够的。我们需要提前去下面的网站选择我们电脑系统对应的wkhtmltopdf下载安装。
https://wkhtmltopdf.org/downloads.html
安装后使用pip安装pdfkit。
pip安装pdf包
现在,我们可以使用两行代码转换将网页指定为PDF格式,比如将我的第一篇自动化文章转换为PDF。
好像效果很好。包括代码在内的所有格式都是完全保存的,接下来怎么做就不用我多说了。比如你想下载微信官方账号所有PDF格式的文章,先提取历史文章的网址,然后用pdfkit进行转换。这两个步骤我们已经详细解释过了!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。