评论

收藏

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

编程语言 编程语言 发布于:2021-06-29 18:27 | 阅读数:433 | 评论:0

  痛点:** 相信大家都会遇到一种**场景**。老师/上司要求你把**某个文件转为pdf,并且是一批(不止一个,一个的话手动就可以搞定),并且这种是枯燥无聊的工作,既没有什么技术含量又累。
  试想一下,如果我把这些文件放到一个文件夹下,执行一下程序**,几分钟后这些文件就转好。这样半天的活,只要**花几分钟就解决了。岂不是美滋滋!!!
  今天辰哥就教大家将任意文件批量转为PDF,这里以日常办公的word**、**excel**、**ppt为例,这三种格式的文件转为PDF。

01、word转PDF

  这里借助Python的docx2pdf去完成转换操作,该库的安装命令如下:
pip install docx2pdf
  目标:读取文件夹下的全部word文件,然后进行转换,最后保存到对应的文件夹中。

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

DSC0001.png
  里面不仅有文字,同时包含有图片
import os
from docx2pdf import convert
word_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存放文件夹。

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

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

02、excel转PDF

  这里需要使用到的库是comtypes,下面直接上案例。
  上面的word转pdf已经教大家学会了从文件夹中读取全部的文件,所有这里同样的就不再赘述。
pip install pywin32
  目标: 将excel文件转为PDF

DSC0004.png
  这里辰哥新建一个excel文件作为演示
import os
from win32com.client import DispatchEx
excel_path = "D:/公众号/0626/Python研究者.xls"
pdf_path = "D:/公众号/0626/Python研究者.pdf"
xlApp = DispatchEx("Excel.Application")
xlApp.Visible = False
xlApp.DisplayAlerts = 0
books = xlApp.Workbooks.Open(excel_path,False)
books.ExportAsFixedFormat(0, pdf_path)
books.Close(False)
xlApp.Quit()
  运行之后生成pdf文件

DSC0005.png
  打开pdf

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

03、ppt转PDF

  这里需要使用到的库是comtypes,下面直接上案例。
  上面的word转pdf已经教大家学会了从文件夹中读取全部的文件,所有这里同样的就不再赘述。
目标:ppt转为pdf  
DSC0007.png

  这个是辰哥之前做分享时弄的一个ppt,咱们就以这个ppt为例
import comtypes.client
import os
def 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

DSC0008.png
  打开pdf其内容如下:

DSC0009.png
04、小结

  本文基本就成功实现目标要求,从效果来看还是非常不错的!完整源码可由文中代码组合而成(已全部分享在文中),感兴趣的读者可以自己尝试!
一定要动手尝试** **!**一定要**动手尝试** **!**一定要**动手尝试!
关注下面的标签,发现更多相似文章