在 Python 中將 Docx 轉換為 PDF
本教程將討論在 Python 中將 docx 檔案轉換為 pdf 檔案的方法。
使用 Python 中的 pywin32
包將 Docx 轉換為 PDF
pywin32
包通常用於在 Python 中建立和初始化 COM 物件以及使用 Windows 服務。由於它是一個外部包,我們必須在使用它之前安裝 pywin32
。下面給出了安裝 pywin32
的命令。
pip install pywin32
我們可以使用帶有此包的 Microsoft Word 應用程式開啟 docx 檔案並將其另存為 pdf 檔案。以下程式碼示例向我們展示瞭如何使用 pywin32
包將 docx 檔案轉換為 pdf 檔案。
import os
import win32com.client
wdFormatPDF = 17
inputFile = os.path.abspath("document.docx")
outputFile = os.path.abspath("document.pdf")
word = win32com.client.Dispatch('Word.Application')
doc = word.Documents.Open(inputFile)
doc.SaveAs(outputFile, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
我們在上面的程式碼中使用 win32com.client
庫將 document.docx
轉換為 document.pdf
。我們使用 doc = word.Documents.Open(inputFile)
開啟了 docx 檔案,並使用 doc.SaveAs(outputFile, FileFormat=wdFormatPDF)
將其儲存為 pdf 檔案。最後,我們使用 doc.Close()
函式關閉開啟的文件,並使用 word.Quit()
函式退出 Microsoft Word。請注意,必須已經為該程式碼建立了輸出檔案才能正常工作。這意味著我們必須在執行上述程式碼之前手動建立一個名為 document.pdf
的檔案。這個過程也可以在 Python 檔案處理的幫助下自動化。以下程式碼片段展示了我們如何進一步自動化整個過程。
import os
import win32com.client
wdFormatPDF = 17
inputFile = os.path.abspath("document.docx")
outputFile = os.path.abspath("document.pdf")
file = open(outputFile, "w")
file.close()
word = win32com.client.Dispatch('Word.Application')
doc = word.Documents.Open(inputFile)
doc.SaveAs(outputFile, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
在上面的程式碼中,在使用 win32com.client
庫開啟 Microsoft Word 之前,我們使用 file = open(outputFile, "w")
建立輸出檔案。
使用 Python 中的 docx2pdf
包將 Docx 轉換為 PDF
pywin32
方法工作得很好,讓我們對細節進行了很多控制。唯一的缺點是我們必須為它編寫大量程式碼。如果我們需要快速將 docx 檔案轉換為 pdf 檔案而不用過多擔心任何低階細節,我們可以使用 Python 中的 docx2pdf
包。docx2pdf
包為我們提供了簡單的函式,可以獲取檔名並處理上一節中討論的所有低階轉換內容。docx2pdf
也是一個外部包。下面給出了安裝 docx2pdf
軟體包的命令。
pip install docx2pdf
以下程式碼示例向我們展示瞭如何使用 docx2pdf
包將 docx 檔案轉換為 pdf 檔案。
from docx2pdf import convert
inputFile = "document.docx"
outputFile = "document2.pdf"
convert(inputFile, outputFile)
我們在上面的程式碼中使用 docx2pdf
包的 convert()
函式將 document.docx
轉換為 document.pdf
。這段程式碼的唯一缺點是我們仍然需要在執行這段程式碼之前建立輸出檔案。我們可以使用檔案處理來自動化這個過程,就像我們在上一節中所做的那樣。
from docx2pdf import convert
inputFile = "document.docx"
outputFile = "document2.pdf"
file = open(outputFile, "w")
file.close()
convert(inputFile, outputFile)
在上面的程式碼中,我們在呼叫 convert()
函式之前使用 file = open(outputFile, "w")
建立輸出檔案。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn