【悩み】
・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 | ライセンス | 公式サイト |
docx2pdf | Windows、MacOS | MIT | pypiのサイト |
LibreOffice | Windows、MacOS、Linux | Mozilla Public License | LibreOffice日本語サイト |
Aspose.Words | Windows、MacOS、Linux | 商用のため有料 | Aspose英語サイト |
comtypes | Windows | MIT | pypiのサイト |
pywin32 | Windows | MIT | pypiのサイト |
本記事では、汎用性が高い「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の学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。
コメント