1
0

ChatGPTのAPIを叩くと、結構な確率でMarkdownテキストが返ってきます。

エンジニアさんならこれで何も問題ないのですが

一般の事務の方や、営業の方が使うような生成AIアプリで
このフォーマットが返ってくると、ちょっと見た目がとっつきにくくて...という方が多かったりしませんか?

そんな経緯でMarkdownテキストをPDFにする方法を調べてみました。


方法

  • pythonでMarkdown to HTMLは簡単にできる
  • HTML to PDFというアプリを使って変換する。Pythonでもこれをインストールすれば呼べる

というかんじで、Python経由でMarkdownを一度HTML経由して、PDF出力することとしました。


実装

今回少しだけ環境依存があるので、
環境が比較的安定しているGoogle Colaboratoryで実現しています。

(1) wkhtmltopdfのインストール

!sudo apt-get install wkhtmltopdf

winやmacのローカル環境なら、上のURLからインストーラ経由でインストールすれば良さそうなんですが、
すみません、動作未確認です。

(2) pipしてwkhtmltopdfを呼べるようにします。

pip install pdfkit

(3) 日本語フォントのインストール

これをしないと日本語が表示されない。

!sudo apt-get install -y fonts-noto-cjk

MarkdownテキストをwPDF変換するpython Google Colaboratory用コード。

import markdown
import pdfkit
from google.colab import files

MARKDONW_STRING = "# Markdown Text"
OUT_FILEPATH = "/path/to/出力先/hoge.pdf"

# Markdownを一旦HTMLに変換します。
html_text = markdown.markdown(MARKDONW_STRING)

# HTMLからPDFに変換して保存します。
options = {
    'page-size': 'A4',
    'margin-top': '0.4in',
    'margin-right': '0.4in',
    'margin-bottom': '0.4in',
    'margin-left': '0.4in',
    'encoding': "UTF-8",   # UTF-8大事。これがないと日本語が文字化けする。
    'no-outline': None,
    'disable-smart-shrinking': '',
}
pdfkit.from_string(html_text, OUT_FILEPATH, options=options)

# 生成されたPDFをブラウザからダウンロード。
files.download(OUT_FILEPATH)

これでPDF出力できるようになりました。
MarkdownのテキストでDXが進まないときは、さくっとPDFにしてみると良いかもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0