PDFを、
座標計算なしで。
gpdfは、MITライセンスの純GoのPDF生成ライブラリです。外部依存パッケージは0、Go標準ライブラリだけで動きます。12カラムグリッドでレイアウトを宣言し、TrueType埋め込みで日本語・中国語・韓国語をそのまま描画。1ページあたり約13µsで出力し、gofpdf・gopdf・Maroto v2と比べて10〜30倍高速です。
速さを、数字で見る
cjk請求書で計測
1 block = 2 ms
計測: 請求書生成 — 日本語テキスト、TrueTypeフォント3サブセット埋込、ロゴ1点、QR 1点。Go 1.25 / Apple M2 で1ドキュメントあたりを計測。数値は丸め、実測値は実行ごとに変動する。
gpdfが選ばれる理由
本番運用のPDFのために設計
- 外部依存 0
- Go標準ライブラリだけ。CGOなし、Cビルド環境なし、ネイティブモジュールなし。毎回、再現可能なビルドが保証される。
- 12カラムグリッド
- 合計が12になる行と列。Bootstrap譲りで、最初から迷わない。行と列は好きなだけネストできる。
- 3書記系のCJK対応
- TrueTypeフォントを埋め込み、外部ツールなしで日本語(JP)・中国語(ZH)・韓国語(KR)を描画する。
- 10〜30倍 高速
- 1ページあたり約13µs。gofpdf・gopdf・Maroto v2と計測比較した結果。
- Fluent Builder API
- PageBuilder → RowBuilder → ColBuilder。すべての設定はFunctional Options(WithXxx)で統一。
- JSON Schema + Go Templates
- PDF構造をJSONで宣言し、text/templateで動かす。単一のソースから数千件のPDFを量産できる。
よくある質問
導入前に確認したいこと
gpdfは、MITライセンスで公開されている純GoのPDF生成ライブラリです。外部依存パッケージは0で、Go標準ライブラリのみを使用します。Bootstrap風の12カラムグリッドでレイアウトを宣言し、TrueTypeフォント埋め込みによりCJK(日本語・中国語・韓国語)を標準でサポートします。
gpdfは1ページのPDF文書を約13マイクロ秒で描画します。gofpdf・gopdf・Maroto v2との計測比較で10〜30倍高速という結果が出ています。
はい。gpdfはTrueTypeフォントを埋め込み、日本語(JP)・中国語(ZH)・韓国語(KR)の3つの書記系すべてを標準描画します。豆腐(□)も文字化けも発生しません。
はい。gpdfはMITライセンスの完全オープンソースです。個人利用・商用利用・再配布も含めて自由です。
go get github.com/gpdf-dev/gpdf を実行してください。Go 1.22以上が必要です(Go 1.26までテスト済み)。外部依存パッケージは0で、Go標準ライブラリのみで動作します。
今日、PDFを届けよう。
MITライセンス、ずっと無料。Go 1.22〜1.26でテスト済み。go get ひとつで始まる。