痛點: 相信大家都會遇到一種場景。老師/上司要求你把某個文件轉為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、小結
本文基本就成功實現目標要求,從效果來看還是非常不錯的!完整源碼可由文中代碼組合而成(已全部分享在文中),感興趣的讀者可以自己嘗試!
一定要動手嘗試 !一定要動手嘗試 !一定要動手嘗試!