# Python自動化辦公中Word怎樣轉PDF
在日常辦公場景中,經常需要將Word文檔(`.docx`)轉換為PDF格式以實現跨平臺穩定顯示或防止內容篡改。Python憑借豐富的第三方庫能夠高效實現自動化轉換,本文將詳細介紹三種主流方法。
## 一、使用`python-docx`和`reportlab`(純Python方案)
適用于需要深度控制PDF生成過程的場景,但實現相對復雜。
```python
from docx import Document
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
def docx_to_pdf(docx_path, pdf_path):
doc = Document(docx_path)
c = canvas.Canvas(pdf_path, pagesize=letter)
y = 750 # 初始Y坐標
for para in doc.paragraphs:
c.drawString(100, y, para.text)
y -= 15 # 行間距
if y < 50: # 換頁判斷
c.showPage()
y = 750
c.save()
缺點:無法保留原始格式(表格、圖片等),僅適合純文本轉換。
win32com
(Windows專屬方案)通過調用本地Office應用實現高保真轉換,需要安裝Microsoft Word。
import win32com.client
def convert_to_pdf(docx_path, pdf_path):
word = win32com.client.Dispatch("Word.Application")
doc = word.Documents.Open(docx_path)
doc.SaveAs(pdf_path, FileFormat=17) # 17代表PDF格式
doc.Close()
word.Quit()
注意:
1. 需安裝pywin32庫:pip install pywin32
2. 路徑需使用絕對路徑
3. 后臺會實際啟動Word進程
docx2pdf
庫(跨平臺推薦方案)封裝了多種系統的轉換邏輯,支持Windows/macOS/Linux。
from docx2pdf import convert
# 單文件轉換
convert("input.docx", "output.pdf")
# 批量轉換
convert("docx_folder/", "pdf_folder/")
優勢: - 自動檢測系統環境選擇最佳方案 - 支持批量轉換 - 保留原始文檔格式
安裝命令:pip install docx2pdf
方法 | 保真度 | 跨平臺 | 依賴環境 | 適用場景 |
---|---|---|---|---|
python-docx+reportlab | 低 | 是 | 純Python | 簡單文本轉換 |
win32com | 高 | 僅Windows | MS Office | 需要完美格式保留 |
docx2pdf | 高 | 是 | 系統Office/LibreOffice | 通用自動化場景 |
import os
from docx2pdf import convert
def batch_convert(input_dir, output_dir):
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for file in os.listdir(input_dir):
if file.endswith(".docx"):
convert(
os.path.join(input_dir, file),
os.path.join(output_dir, file.replace(".docx", ".pdf"))
)
try:
convert("input.docx", "output.pdf")
except Exception as e:
print(f"轉換失敗: {str(e)}")
# 可添加重試或日志記錄邏輯
根據實際需求選擇合適方案,對于大多數自動化辦公場景,推薦優先考慮docx2pdf
庫。如需更復雜的格式控制,可結合python-docx
進行文檔預處理后再轉換。
“`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。