【5分でわかる】PythonでWordをPDF変換:Linux含む全OS対象

 

【悩み】
・PythonでWord文書をPDFファイルへ変換したい。
・どのPythonライブラリを使うべきかを知りたい。
・MacOSやUbuntuなどのLinux上で実現したい。



こういった「悩み」に答えます。
 

【本記事の内容】
① WordをPDFへ変換できるPythonライブラリ
➁ 事前準備:各種インストール
➂ PythonでWord文書をPDFへ変換



本記事に掲載した方法を実践したことで、Pythonを使ってWord文書(docxやdocファイル)をPDFファイルに変換できました(下の動画参照)。
 



記事の前半では「WordをPDFファイルへ変換するために使えるPythonライブラリの一覧」について解説します。

記事の後半では「ライブラリのインストール方法などの環境準備」と「WordをPDFに変換するPythonプログラム」を説明します。
  

この記事を読み終えることで、「Wordファイルを開かずにPDFファイルに変換できる」状態になります。
 

ちなみに、「新規作成」「編集」「抽出」といった操作もPythonで実施できます。以下の記事にまとめているので興味がある方は是非ご覧ください。


 

WordをPDFへ変換できるPythonライブラリ


PythonでWordをPDFに変換したい場合、いくつかのライブラリを使う方法があります。

今回は、よく使われる5つのライブラリを紹介しつつ、特にオススメな「docx2pdf」「LibreOffice」「Aspose.Words」に関して詳しく解説します。
 

【ご紹介事項】
・ライブラリ5選
・docx2pdfとは:WindowsとMacOS向け
・LibreOffice:Linuxにも対応
・Aspose.Wordsとは:商用なため高品質


 

ライブラリ5選

PythonでWord文書をPDFファイルに変換したい場合、以下のライブラリがよく使われます。
 

名称サポートOSライセンス公式サイト
docx2pdfWindows、MacOSMITpypiのサイト
LibreOfficeWindows、MacOS、LinuxMozilla Public LicenseLibreOffice日本語サイト
Aspose.WordsWindows、MacOS、Linux商用のため有料Aspose英語サイト
comtypesWindowsMITpypiのサイト
pywin32WindowsMITpypiのサイト



本記事では、汎用性が高い「docx2pdf」「LibreOffice」「Aspose.Words」に関して詳しく解説します。
 

docx2pdfとは:WindowsとMacOS向け

docx2pdfライブラリの概要を以下に記載します。
 

【docx2pdfとは】
docx2pdfはPythonライブラリです。本ライブラリを使うことでMacOSやWindows上で「Word文書をPDFに変換」できます。
ただし、Ubuntu・Red Hat Enterprise Linux(RHEL)・CentOSなどのLinux環境での動作はサポートしていません。



ライセンスに関して以下に記載します。
 

【ライセンスについて】
docx2pdfのライセンスは、MIT(2023年4月22日時点)です。
特に制限なく、無料で使えます。
参照:
docx2pdfのライセンスページ(GitHub)
MITとは(Wikipedia)



また、「直近でどのぐらい活発に開発されているか?」に関する情報は、以下のサイトから確認できます。
参照:docx2pdfの開発頻度(GitHub)
 



上図より、docx2pdfは活発に開発されているライブラリではないです。
そのため、脆弱性やバグがあった場合、即座に修正されず、利用者自身でライブラリの修正が必要になると考えられます。
商用で本ライブラリを使う際は、注意してください。
 

ちなみに、docx2pdfは、以下の言語で開発されています。
参照:docx2pdfの開発言語(GitHub)
 


 

LibreOffice:Linuxにも対応

LibreOfficeの概要を以下に記載します。
 

【LibreOfficeとは】
LibreOfficeは、The Document Foundationが開発したオフィスソフトで、テキスト文書、スプレッドシートなどを提供し、Windows、MacOS、Linuxなどで利用できます。無料で利用可能で、多言語対応です。PythonからLibreOfficeのコマンドを実行し、WordをPDFに変換できます(下図参照)。

 



ライセンスに関して以下に記載します。
 

【ライセンスについて】
LibreOfficeのライセンスは、Mozilla Public License(2023年4月22日時点)です。特に制限なく、無料で使えます。
参照:
LibreOfficeのライセンスページ(公式サイト)
Mozilla Public Licenseとは(Wikipedia)



また、「直近でどのぐらい活発に開発されているか?」に関する情報は、以下のサイトから確認できます。
参照:LibreOfficeの開発頻度
 



上図より、LibreOfficeは活発に開発されているライブラリに見えます。
そのため、脆弱性やバグがあった場合、即座に修正されると考えられます。
 

Aspose.Wordsとは:商用なため高品質

PythonでWord文書をPDFファイルに変換したい場合、「Aspose.Words」ライブラリを使う方法があります。

以下の記事でライブラリのライセンスや概要をご紹介しています。気になる方は、ぜひ読んでみてください。

>>【5分でわかる】PythonでWordを新規作成する方法

 

高品質かつ保守の軽減を実現したい場合、「Aspose.Words」を使いましょう。それ以外の場合は、「LibreOffice」または「docx2pdf」を選択しましょう。


 

事前準備:各種インストール


「PythonでWord文書をPDFファイルに変換するための準備」に関してご紹介します。
 

【流れ】
手順1:Pythonのインストール
手順2:docx2pdfのインストール
手順3:LibreOfficeのインストール



上記の流れで説明します。
 

Pythonのインストール

以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール

 

docx2pdfのインストール

docx2pdfライブラリをインストールするために、以下のコマンドを順番に実行してください。

pip install docx2pdf
pip list



コマンド実行後、「docx2pdf(バージョン)」が表示された場合、「正常にライブラリをインストールできた」と判断できます。
 

LibreOfficeのインストール

LibreOfficeをインストールする方法は、OSごとに異なります。以下を参考にして、OSごとに適切な操作でLibreOfficeをインストールしてください。

・Windowsの場合、Webブラウザで以下にアクセスしダウンロードしたexeファイルを実行
 https://ja.libreoffice.org/download/download/

・Fedora系(CentOS/RHELなど)のLinuxの場合、端末上で以下を実行
 sudo yum install libreoffice libreoffice-langpack-ja
 または
 sudo dnf install libreoffice libreoffice-langpack-ja

・Debian系(Ubuntuなど)のLinuxの場合、端末上で以下を実行
 apt-get install libreoffice

・Macの場合、Webブラウザで以下にアクセスしダウンロードしたdmgファイルを実行
 https://ja.libreoffice.org/download/download/



インストールが正常にできたかを確認するために、以下のコマンドを実行しましょう。

・Windowsの場合
 Widnowsマークを押下し、すべてのアプリをクリック後に「libreoffice」があること
・その他
 which libreoffice後にlibreofficeのPATHが表示されること(例:/usr/bin/libreoffice)

 

以降で、Pythonを使ってWordをPDFに変換するプログラムとその実行結果を解説します。


 

PythonでWord文書をPDFへ変換


「PythonでWordをPDFに変換する方法」に関してご紹介します。
 

【ご紹介事項】
・WindowとMacOS向け:docx2pdfを使用
・Linuxを含めた全OS向け:LibreOfficeを使用



以降で、以下「sample.docx」のWordファイルを用いて、上記の各項目に関して説明します。


ちなみに、「Aspose.Words」を使った変換事例に関しては、以下の公式サイトをご覧ください。

>> Convert a Document to PDF(公式サイト)
 

WindowとMacOS向け:docx2pdfを使用

「docx2pdfを使ってWordをPDFに変換する」Pythonプログラムは、以下となります。

from docx2pdf import convert

# 対象のワードファイルのPATH
word_path = './sample.docx'

# 変換後のPDFファイルのPATH
pdf_path = './output/sample.pdf'

# 変換を実施
convert(word_path, pdf_path)



上記のプログラムを「docx2pdf-sample.py」というファイル名で保存しましょう。
 

【convert関数について】
・書き方
 convert(Word文書のPATH, PDF変換後のPATH)
・処理
 指定したWordをPDF変換し、指定した場所に保存する
・参照
 convert関数のリファレンス(公式サイト)



以下のコマンドで、上記プログラムを実行できます。

python docx2pdf-sample.py


その結果、以下のようにWindowsやMacOS上でWordをPDFに変換できます(下の動画参照)。


 

Linuxを含めた全OS向け:LibreOfficeを使用

「LibreOfficeを使ってWordをPDFに変換する」Pythonプログラムは、以下となります。

import subprocess

# 対象のワードファイルのPATH
word_path = './sample.docx'

# 変換後のPDFファイルのPATH
pdf_path = './sample.pdf'

# 変換を実施
subprocess.call(['soffice','--headless','--convert-to','pdf','--outdir',pdf_path,word_path])



上記のプログラムを「libreoffice-sample.py」というファイル名で保存しましょう。
 

【subprocess関数について】
・書き方
 subprocess([実行したいコマンド])
・処理
 指定したコマンドをPython内から実行する
・参照
 subprocess関数のリファレンス(Python公式サイト)

 

【sofficeコマンドについて】
・書き方
 soffice –headless –convert-to pdf
–outdir <PDF変換後の保存先> <変換したいWordのPATH>
・処理
 指定したWordをPDF変換し、指定した場所に保存する
・参照
 sofficeコマンドのリファレンス(公式サイト)



以下のコマンドで、上記プログラムを実行できます。

python libreoffice-sample.py


その結果、以下のようにUbuntuなどのLinux上でWordをPDFに変換できます(下の動画参照)。


 

上記のようにdocx2pdfまたはLibreOfficeを使うことで、Python経由でWordをPDF変換できます。



Pythonを使うことで、Word文書をPDFファイルに変換できることを説明しました。このPythonを使うことで、あらゆる業務や作業を自動化できます。
その事例やヒントを知りたい方には、以下の本がオススメです。

 



ちなみに、上記教材の詳細なレビューに関しては、以下のサイトにまとめています。

>> 「退屈なことはPythonにやらせよう」のレビューの一覧


 

【まとめ】docx2pdfとLibreOfficeがおすすめ!


いかがでしたでしょうか?

上記で紹介したdocx2pdfまたはLibreOfficeを使うことで、PythonでWord文書をPDFファイルに変換できます。

最後にもう一度内容を確認しましょう。
 

【おさらい】
・PythonでWordをPDF変換したい場合、いくつかのライブラリがある
・品質、保守、動作環境を考慮し適切な方法を選択すること
・無料で実現したい場合はdocx2pdfまたはLibreOfficeがオススメ



ちなみに、「新規作成」「編集」「抽出」といった操作もPythonで実施できます。以下の記事にまとめているので興味がある方は是非ご覧ください。



本ブログでは、「業務の時短化に繋がるIT技術」や「クラウドやOSSの学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。

>> IT技術やその学び方を発信しているサイト「駆け出し物語」(本ブログ)
 

コメント