v1.0.4 · MIT · 純Go · 依存ゼロ

PDFを、
座標計算なしで。

gpdfは、MITライセンスの純GoのPDF生成ライブラリです。外部依存パッケージは0、Go標準ライブラリだけで動きます。12カラムグリッドでレイアウトを宣言し、TrueType埋め込みで日本語・中国語・韓国語をそのまま描画。1ページあたり約13µsで出力し、gofpdf・gopdf・Maroto v2と比べて10〜30倍高速です。

$go get github.com/gpdf-dev/gpdf
クイックスタートを読む →
main.go
package main

import (
    "os"
    "github.com/gpdf-dev/gpdf/document"
    "github.com/gpdf-dev/gpdf/template"
)

func main() {
    doc := template.New(
        template.WithPageSize(document.A4),
        template.WithMargins(document.UniformEdges(document.Mm(20))),
    )

    page := doc.AddPage()
    page.AutoRow(func(r *template.RowBuilder) {
        r.Col(12, func(c *template.ColBuilder) {
            c.Text("Hello, World!", template.FontSize(24), template.Bold())
        })
    })

    data, _ := doc.Generate()
    os.WriteFile("hello.pdf", data, 0644)
}
01

純Go、依存ゼロ

Go標準ライブラリだけで動く — 外部パッケージ0、CGOなし、Cビルド環境なし。go buildしたバイナリ1つで、Linuxコンテナ・AWS Lambda・エッジまで同じように動く。

02

12カラムグリッド、座標は書かない

Bootstrap譲りのレイアウト。r.Col(7) + r.Col(5) = 12。レイアウトはコードに閉じる、ピクセル定規はもう要らない。行と列は好きなだけネストできる。

03

CJK、最初から一等扱い

TrueTypeフォント埋め込みを標準搭載。日本語・中国語・韓国語の3つの書記系を、そのまま描画する。豆腐(□)も文字化けも、ベンダーパッチも要らない。

速さを、数字で見る

cjk請求書で計測

1 block = 2 ms
gpdf
2 ms
gofpdf
15 ms
gopdf
20 ms
Maroto v2
45 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を量産できる。

よくある質問

導入前に確認したいこと

01

gpdfとは?

gpdfは、MITライセンスで公開されている純GoのPDF生成ライブラリです。外部依存パッケージは0で、Go標準ライブラリのみを使用します。Bootstrap風の12カラムグリッドでレイアウトを宣言し、TrueTypeフォント埋め込みによりCJK(日本語・中国語・韓国語)を標準でサポートします。

02

gpdfは他のライブラリと比べてどれくらい速い?

gpdfは1ページのPDF文書を約13マイクロ秒で描画します。gofpdf・gopdf・Maroto v2との計測比較で10〜30倍高速という結果が出ています。

03

日本語・中国語・韓国語に対応している?

はい。gpdfはTrueTypeフォントを埋め込み、日本語(JP)・中国語(ZH)・韓国語(KR)の3つの書記系すべてを標準描画します。豆腐(□)も文字化けも発生しません。

04

gpdfは無料で使える?

はい。gpdfはMITライセンスの完全オープンソースです。個人利用・商用利用・再配布も含めて自由です。

05

gpdfのインストール方法は?

go get github.com/gpdf-dev/gpdf を実行してください。Go 1.22以上が必要です(Go 1.26までテスト済み)。外部依存パッケージは0で、Go標準ライブラリのみで動作します。

今日、PDFを届けよう。

MITライセンス、ずっと無料。Go 1.22〜1.26でテスト済み。go get ひとつで始まる。

$go get github.com/gpdf-dev/gpdf
ドキュメント一覧 →