辦公利器!用Python快速將任意檔案轉為PDF

Python研究者發表於2021-06-27

痛點: 相信大家都會遇到一種場景。老師/上司要求你把某個檔案轉為pdf,並且是一批(不止一個,一個的話手動就可以搞定),並且這種是枯燥無聊的工作,既沒有什麼技術含量又累。

試想一下,如果我把這些檔案放到一個資料夾下,執行一下程式,幾分鐘後這些檔案就轉好。這樣半天的活,只要花幾分鐘就解決了。豈不是美滋滋!!!

今天辰哥就教大家將任意檔案批量轉為PDF,這裡以日常辦公的wordexcelppt為例,這三種格式的檔案轉為PDF。

01、word轉PDF

這裡藉助Python的docx2pdf去完成轉換操作,該庫的安裝命令如下:

pip install docx2pdf

目標:讀取資料夾下的全部word檔案,然後進行轉換,最後儲存到對應的資料夾中。

這裡辰哥新建兩個word檔案作為演示,開啟其中一個word看看

裡面不僅有文字,同時包含有圖片


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存放資料夾。

開啟第一個pdf,內容如下:

可以看到文字圖片、以及排版****這些都與原檔案(word)一模一樣

02、excel轉PDF

這裡需要使用到的庫是comtypes,下面直接上案例。

上面的word轉pdf已經教大家學會了從資料夾中讀取全部的檔案,所有這裡同樣的就不再贅述。

pip install pywin32

目標: 將excel檔案轉為PDF

這裡辰哥新建一個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檔案

開啟pdf

可以看到excel中的資料已經全部轉為PDF格式。

03、ppt轉PDF

這裡需要使用到的庫是comtypes,下面直接上案例。

上面的word轉pdf已經教大家學會了從資料夾中讀取全部的檔案,所有這裡同樣的就不再贅述。

目標:ppt轉為pdf

這個是辰哥之前做分享時弄的一個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

開啟pdf其內容如下:

04、小結

本文基本就成功實現目標要求,從效果來看還是非常不錯的!完整原始碼可由文中程式碼組合而成(已全部分享在文中),感興趣的讀者可以自己嘗試!

一定要動手嘗試 一定要動手嘗試 一定要動手嘗試!

相關文章