Python で Docx を PDF に変換する

Muhammad Maisam Abbas 2023年1月30日
  1. Python の pywin32 パッケージを使用して Docx を PDF に変換する
  2. Python の docx2pdf パッケージを使用して Docx を PDF に変換する
Python で Docx を PDF に変換する

このチュートリアルでは、Python で docx ファイルを pdf ファイルに変換する方法について説明します。

Python の pywin32 パッケージを使用して Docx を PDF に変換する

pywin32 パッケージは通常、COM オブジェクトの作成と初期化、および Python での 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.docxdocument.pdf に変換しました。doc = word.Documents.Open(inputFile) で docx ファイルを開き、doc.SaveAs(outputFile, FileFormat=wdFormatPDF) で pdf ファイルとして保存しました。最後に、開いたドキュメントを doc.Close() 関数で閉じ、Microsoft Word を word.Quit() 関数で終了しました。このコードが正しく機能するには、出力ファイルがすでに作成されている必要があることに注意してください。これは、上記のコードを実行する前に、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.docxdocument.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") を使用して出力ファイルを作成します。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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