今回は別にPythonでやるまででは無い案件なのですが、pythonでJSONデータをレポート形式(ワードファイル)にした後に、フォーマットを一括して自動でPDF化したかったので、そのためのライブラリとスクリプトのご紹介です。
ぶっちゃければ、PDFへの一括変換だけの作業ですので、Adobe DCさんの力を借りれば一瞬ではあるのですが、画面遷移すらするのがめんどくさい、せっかくスクリプトでレポートフォーマットまでワード形式で作ったんだから、PDF化もpythonで一緒にやってしまいたい、とめんどくさがりの私は考えてしまいます。
そんなめんどくさがり屋さんのための記事だと思ってみてください。
PythonでワードファイルをPDF化する方法
利用するライブラリ
今回はこのdocx2pdfというライブラリを利用します。

ライブラリをgithubでみてもらうとわかりますが、正直めっちゃ薄〜いライブラリです。別に薄くても期待した通りの所作はしてくれるので問題はありませんw
対応OS
Windows 及び Macの両方とも対応可能です。
pipでのインストール方法
pip install docx2pdf
CLI
usage: docx2pdf [-h] [--keep-active] [--version] input [output]
Example Usage:
Convert single docx file in-place from myfile.docx to myfile.pdf:
docx2pdf myfile.docx
Batch convert docx folder in-place. Output PDFs will go in the same folder:
docx2pdf myfolder/
Convert single docx file with explicit output filepath:
docx2pdf input.docx output.docx
Convert single docx file and output to a different explicit folder:
docx2pdf input.docx output_dir/
Batch convert docx folder. Output PDFs will go to a different explicit folder:
docx2pdf input_dir/ output_dir/
positional arguments:
input input file or folder. batch converts entire folder or convert
single file
output output file or folder
optional arguments:
-h, --help show this help message and exit
--keep-active prevent closing word after conversion
--version display version and exit
実際のサンプルコード(フォルダ内のワードファイルを一括してPDF化)
それでは、実際のサンプルコードをご覧ください。今回はフォルダ内のデータ(ワードファイル)を一括してPDFにしています。inputのデータフォルダとoutputのデータフォルダは別のフォルダを使う前提です。
rom docx2pdf import convert
"""
use library: https://github.com/AlJohri/docx2pdf
"""
def convert_pdf(input_dir="output/", output_dir="output_pdf/"):
"""
docxファイルの保存されたフォルダを指定して、フォルダ格納データを全てpdfにして、指定フォルダに保存する
:param input_dir: dir_name, default:output/, outputフォルダを利用
:param output_dir: dir_name, default:output_pdf/, output_pdfフォルダを利用
:return: output_pdfフォルダにoutputフォルダのpdfが全て保存される
"""
convert(input_dir, output_dir)
if __name__ == '__main__':
input_dir = "output/"
output_dir = "output_pdf/"
convert_pdf(input_dir, output_dir)
ぶっちゃけライブラリをインポートして、実行関数を一つ設定してるだけですが、これで300くらい元フォルダ(今回の場合はoutput/)にあるデータが10秒足らずでpdf化されてoutput_pdf/フォルダに吐き出されます。
実際はワードを作るpython scriptにおいて、convert_pdf methodを呼び出して使っていますが、今回はわかりやすいように一応mainも書いておきました。
Adobe DCでワードをPDFに一括変換する方法
もちろん同様の作業はAdobe DCからでも実行可能です。
step1: ファイル→作成→複数のPDFファイルを作成…をクリック

step2: ファイルもしくはフォルダを指定してOKをクリック

まとめ
別にこれくらいマニュアルでやるよ、って人の方が多いかと思いますが、画面遷移させたりfolder選択したりするのめんどくさい私はこれもスクリプトに頼ってしまっています汗
効率化って実は大きな作業もそうなんですが、画面遷移やファイル探しなんかで手間かけるのを削除することも重要だと思ってます。特に結構な頻度でやる作業や、逆に月1回とかしかやらない作業(フォルダの場所忘れる問題)なんかでは。