查看原文
其他

办公利器!用Python快速将任意文件转为PDF

李运辰 Python研究者 2022-09-11

大家好,我是辰哥!


痛点:


相信大家都会遇到一种场景。老师/上司要求你把某个文件转为pdf,并且是一批(不止一个,一个的话手动就可以搞定),并且这种是枯燥无聊的工作,既没有什么技术含量又累。


试想一下,如果我把这些文件放到一个文件夹下,执行一下程序,几分钟后这些文件就转好。这样半天的活,只要花几分钟就解决了。岂不是美滋滋!!!


今天辰哥就教大家将任意文件批量转为PDF,这里以日常办公的wordexcelppt为例,这三种格式的文件转为PDF。





01

word转PDF



这里借助Python的docx2pdf去完成转换操作,该库的安装命令如下:


pip install docx2pdf


目标:读取文件夹下的全部word文件,然后进行转换,最后保存到对应的文件夹中。




这里辰哥新建两个word文件作为演示,打开其中一个word看看



里面不仅有文字,同时包含有图片


import osfrom docx2pdf import convertword_path = 'word_path'word_to_pdf = 'word_to_pdf'for i,j,name in os.walk(word_path): for word_name in name: convert(word_path+"/"+word_name, word_to_pdf+"/"+word_name.replace("docx","pdf"))


其中word_path是存放word文件的文件夹,word_to_pdf是转换后的pdf存放文件夹。



打开第一个pdf,内容如下:



可以看到文字图片、以及排版这些都与原文件(word)一模一样





02

excel转PDF


这里需要使用到的库是comtypes,下面直接上案例。


上面的word转pdf已经教大家学会了从文件夹中读取全部的文件,所有这里同样的就不再赘述。


pip install pywin32


目标:将excel文件转为PDF



这里辰哥新建一个excel文件作为演示


import osfrom win32com.client import DispatchExexcel_path = "D:/公众号/0626/Python研究者.xls"pdf_path = "D:/公众号/0626/Python研究者.pdf"
xlApp = DispatchEx("Excel.Application")xlApp.Visible = FalsexlApp.DisplayAlerts = 0books = xlApp.Workbooks.Open(excel_path,False)books.ExportAsFixedFormat(0, pdf_path)books.Close(False)xlApp.Quit()


运行之后生成pdf文件



打开pdf



可以看到excel中的数据已经全部转为PDF格式。







03

ppt转PDF



这里需要使用到的库是comtypes,下面直接上案例。


上面的word转pdf已经教大家学会了从文件夹中读取全部的文件,所有这里同样的就不再赘述。


目标:ppt转为pdf



这个是辰哥之前做分享时弄的一个ppt,咱们就以这个ppt为例


import comtypes.clientimport osdef ppt_to_pdf(): #设置路径 input_file_path=os.path.abspath("Python学习规划路线.pptx") output_file_path=os.path.abspath("Python学习规划路线.pdf") #创建PDF powerpoint=comtypes.client.CreateObject("Powerpoint.Application") powerpoint.Visible=1 slides=powerpoint.Presentations.Open(input_file_path) #保存PDF slides.SaveAs(output_file_path,32) slides.Close()


这里将会ppt:Python学习规划路线.pptx转为Python学习规划路线.pdf



打开pdf其内容如下:






04

小结



本文基本就成功实现目标要求,从效果来看还是非常不错的!完整源码可由文中代码组合而成(已全部分享在文中),感兴趣的读者可以自己尝试!

一定要动手尝试一定要动手尝试一定要动手尝试!


最后说一声:原创不易,求给个赞、在看、评论



往期精彩回顾




办公利器!用Python批量识别发票并录入到Excel表格


遇到禁止复制该怎么办?幸好我会Python...


分分钟教你Python Web开发框架Django



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

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