当前位置:  首页>> 技术小册>> Python与办公-玩转PDF

针对Excel文档要转换成PDF文档的需求,目前并未找到类似docx2pdf这种简洁的库,不过没关系,我们自己使用win32com转一下,代码如下:

  1. import os.path
  2. from win32com.client import DispatchEx
  3. app = DispatchEx("Excel.Application")
  4. app.Visible = False
  5. app.DisplayAlerts = 0
  6. abs_path = os.path.abspath(_ _ file_ _)
  7. base_dir = os.path.dirname(abs_path)
  8. file_path = os.path.join(base_dir,"convert_ files","转换测试文
  9. 档.xlsx")
  10. save_path = os.path.join(base_dir,"convert_ files","test.pdf")
  11. wb = app.Workbooks.Open( file_path)
  12. wb.ExportAsFixedFormat(0,save_path)
  13. wb.Close()
  14. app.Quit()

使用win32com转换文档格式的过程是先用一个Excel应用打开一个Excel文档,然后调用文档的ExportAsFixedFormat()方法将其保存为PDF文件。

需要注意的是,win32com库的传入路径都必须是绝对路径,在代码中我们将打开和保存的文件都保存在当前代码文件所在文件夹里的convertfiles文件夹里,不能使用相对路径的话只能自己拼接路径了。不知道你现在对路径操作是否已经熟悉,反正操作很简单,首先使用os.path.abspath( f i le _)获取当前代码文件的绝对路径(包含文件名),再调用 os.path.dirname()获得代码文件上级的文件路径(不包含文件名),再通过os.path.join()拼接convert_files文件夹和目标文件名,这样就能得到文件的绝对路径了。

哦对了,操作完之后还是不要忘了关闭应用和文档。