Python

pandocでmarkdownファイルをwordやpdfへ変換する

はじめに

markdownはエンジニアにとっては馴染みが深いが、そうでない人にとってはただ読みづらいファイルである。

ビジネスサイドの人にmarkdownファイルをそのまま共有するのではなく、wordやPDFにして見やすい形で渡す必要があった。

単純に変換するだけでは面白くないので、Pythonを使ってGitHubのissueをPDFに変換するところまでやっていく。

環境

  • windows10
  • Pandoc: 2.16.2

事前準備

Pandocのインストール

まずは大前提のPandocをインストールする。

以下から最新のPandocのインストーラーをダウンロードする

https://pandoc.org/installing.html

▼Download th latest installer for Windows(64-bit)をクリック

▼インストーラーをダウンロードできたら、インストールを開始する

▼数秒でインストールが完了する

Pandocのインストールの確認

念のためにインストールが正しく行えているか確認しておく。

▼適当なマークダウンファイルを用意

C:\MdToPdf>echo # test markdown file > test.md

▼作成したマークダウンファイルをword(docx)ファイルに変換

pandoc test.md --from=markdown --to=docx --output=test.docx
C:\MdToPdf>dir
12/12/2021  04:39 PM             9,762 test.docx
12/12/2021  04:37 PM                23 test.md

問題なくdocxファイルが作成できていることが確認できた。

Tex Liveのインストール

docxファイルはPandocをインストールするだけで変換できたが、PDFに変換するためにはPDFエンジンが必要になるので、Tex Liveをインストールする。

https://www.tug.org/texlive/acquire-netinstall.html

▼公式ページからinstall-tl-windows.exeをダウンロードする

▼windowsのプロテクトが起動した場合はMore infoをクリック

▼Run anywayをクリック

▼謎のキャラがでてきて、インストーラーが起動する

▼インストールされるのを眺める。マシンスペックによってはかなり時間がかかる。

▼数時間、長ければ12時間ほど待つとWelcome to Tex Live!と表示される。これでインストールは完了だ。

Tex Liveのインストールの確認

Tex Liveがインストールできたか、また日本語に対応できるか確認しておく。

▼TeXworks editorを起動する。これはTex Liveインストール時に一緒に入っている

▼エディタが起動出来たら、以下を入力して、ctrl+Sで適当な場所に保存する

\documentclass{article}
\begin{document}
Hello World!
\end{document}

▼pdfLaTexが選択できていることを確認して、左上の緑の三角ボタンを押す

▼PDFが作成された

続いて日本語が出力できるか確認する。

\documentclass[dvipdfmx]{jsarticle}
\begin{document}
こんにちは,\LaTeX
\end{document}

▼出力できることが確認できた

▼もし日本語のPDFが出力できない場合は、以下などを参照

TeXworkは今後使わないので、閉じてしまって問題ない。

markdownファイルからPDFの作成

tex liveがインストールできたので、マークダウンファイルをPDFに変換する方法を見ておこう。

前提としては、先ほどpandocのインストール確認で使用したtest.mdがあること。

C:\MdToPdf>pandoc .\test.md -o test.pdf --pdf-engine=lualatex

実行後少し待つとtest.pdfが作成されることが確認できる。

C:\MdToPdf>dir
 Directory of C:\MdToPdf

12/12/2021  04:39 PM             9,762 test.docx
12/12/2021  04:37 PM                23 test.md
12/12/2021  05:43 PM             5,666 test.pdf

次回(Pythonを使ってmarkdownファイルを変換する)

次の記事ではPythonを使ってmarkdownファイルを変換することをみていく。さらにはGitHubのissueなどを変換してみることにする。