Help us understand the problem. What is going on with this article?

Golangで日本語PDFを出力する方法

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も基本的な描画機能は揃っているので特に困ることはないはずです。

締め

閲覧いただき、ありがとうございました。
記載内容に疑問点・不適切な内容がありましたら、ご指摘頂けますと助かります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away