痛點: 相信大家都會遇到一種場景。老師/上司要求你把某個檔案轉為pdf,並且是一批(不止一個,一個的話手動就可以搞定),並且這種是枯燥無聊的工作,既沒有什麼技術含量又累。
試想一下,如果我把這些檔案放到一個資料夾下,執行一下程式,幾分鐘後這些檔案就轉好。這樣半天的活,只要花幾分鐘就解決了。豈不是美滋滋!!!
今天辰哥就教大家將任意檔案批量轉為PDF,這裡以日常辦公的word、excel、ppt為例,這三種格式的檔案轉為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、小結
本文基本就成功實現目標要求,從效果來看還是非常不錯的!完整原始碼可由文中程式碼組合而成(已全部分享在文中),感興趣的讀者可以自己嘗試!
一定要動手嘗試 !一定要動手嘗試 !一定要動手嘗試!