Golangを使ったアプリケーションでPDFを出力する機会がありました。
その時に日本語出力に苦労したので、その対応について紹介していきます。
結論
以下ライブラリを利用することで、比較的簡単に日本語のPDFを出力することができました。
https://github.com/signintech/gopdf
経緯
はじめGolangのPDFライブラリを調べていると以下のライブラリを見つけました。
https://github.com/jung-kurt/gofpdf
日本語の紹介記事などもあったので、これで行けるかなと思ったのですが、どうやらUTF-8フォントをサポートしていない影響で、日本語出力を行うことが難しいようでした。
However, support is provided to automatically translate UTF-8 runes to code page encodings for languages that have fewer than 256 glyphs.
という説明もあったので、頑張れば何とかなるのかもしれませんが、issueなどを読んで色々試してもうまくいかなかったため、別ライブラリを探すことにしました。
signintech/gopdfについて
そんな時の見つけたのが冒頭で紹介したsignintech/gopdfです。
こちらのライブラリはスター数はgofpdfに劣りますが、READMEにもある通り日本語出力への対応が行われており、フォントの読み込みもシンプルに行えるため、なかなかいい感じです。
使い方は本家READMEに十分に記載されており、サンプルも十分提供されており、基本的な使い方で困ることは少ないでしょう。
フォントについてもttfフォーマットのファイルを用意できれば簡単に適用可能なので、つまずく機会は少ないはずです。(フォントのライセンスには注意しましょう)
ただ触ってみた感じ、機能の豊富さや使い勝手はjung-kurt/gofpdfの方が上です。こちらのライブラリで日本語出力ができた方は是非方法を教えていただきたいです。
signintech/gopdfも基本的な描画機能は揃っているので特に困ることはないはずです。
締め
閲覧いただき、ありがとうございました。
記載内容に疑問点・不適切な内容がありましたら、ご指摘頂けますと助かります。