v1.0.4 · MIT · Go puro · 0 dependências

PDFs em Go puro,
sem coordenadas.

gpdf é uma biblioteca de geração de PDF em Go puro sob licença MIT. 0 dependências externas — apenas a biblioteca padrão do Go. Declare layouts em uma grade de 12 colunas, incorpore fontes TrueType para japonês, chinês e coreano, e renderize um documento de página única em cerca de 13 µs — 10–30× mais rápido que gofpdf, gopdf e Maroto v2.

$go get github.com/gpdf-dev/gpdf
Ler o guia rápido →
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 puro, 0 dependências

Apenas a biblioteca padrão do Go — 0 pacotes externos, sem CGO, sem cadeia de ferramentas C. Um único binário do go build roda igual em contêineres Linux, AWS Lambda e no edge.

02

Grade de 12 colunas, sem coordenadas

Layout no estilo Bootstrap. r.Col(7) + r.Col(5) = 12. As decisões de layout ficam no código, não em uma régua de pixels. Linhas e colunas podem ser aninhadas em qualquer profundidade.

03

CJK de primeira classe

Incorporação nativa de fontes TrueType. Os 3 sistemas de escrita CJK — japonês, chinês e coreano — são renderizados como estão. Sem tofu (□), sem mojibake, sem patches externos.

Velocidade em números

medida sobre uma fatura cjk

1 block = 2 ms
gpdf
2 ms
gofpdf
15 ms
gopdf
20 ms
Maroto v2
45 ms

Benchmark: geração de fatura — texto japonês/chinês/coreano, 3 subconjuntos de fontes TrueType incorporados, 1 logo, 1 código QR. Medido por documento no Go 1.25 / Apple M2. Valores arredondados; variam por execução.

Por que equipes escolhem gpdf

feito para pdfs de produção reais

~

0 dependências externas

Apenas a biblioteca padrão do Go. Sem CGO, sem cadeia de ferramentas C, sem módulos nativos. Builds reprodutíveis a cada execução.

#

Grade de 12 colunas

Linhas e colunas que somam 12. Estilo Bootstrap — familiar desde o primeiro dia. Aninháveis sem limite.

CJK em 3 sistemas de escrita

Incorpore fontes TrueType e renderize japonês (JP), chinês (ZH) e coreano (KR) sem ferramentas externas.

>

10–30× mais rápido

Cerca de 13 µs por página em documentos de página única. Medido contra gofpdf, gopdf e Maroto v2.

{}

API Builder fluida

PageBuilder → RowBuilder → ColBuilder. Opções funcionais (WithXxx) unificam todos os ajustes.

JSON Schema + Go Templates

Declare a estrutura do PDF em JSON, conduza com text/template e gere milhares de documentos a partir de uma única fonte da verdade.

Perguntas frequentes

o essencial antes de começar

01

O que é gpdf?

gpdf é uma biblioteca de geração de PDF em Go puro sob licença MIT. Possui 0 dependências externas e usa apenas a biblioteca padrão do Go. Declara layouts com uma grade de 12 colunas no estilo Bootstrap e suporta CJK (japonês, chinês e coreano) nativamente via incorporação de fontes TrueType.

02

Quão rápido é gpdf comparado com as alternativas?

gpdf renderiza um documento PDF de página única em aproximadamente 13 microssegundos — 10 a 30 vezes mais rápido que gofpdf, gopdf e Maroto v2 em benchmarks comparativos.

03

gpdf suporta japonês, chinês e coreano?

Sim. gpdf incorpora fontes TrueType e renderiza nativamente japonês (JP), chinês (ZH) e coreano (KR) — os 3 sistemas de escrita CJK. Sem tofu (□) nem mojibake.

04

gpdf é gratuito?

Sim. gpdf é totalmente open source sob licença MIT. Livre para uso pessoal, comercial e redistribuição.

05

Como instalo gpdf?

Execute: go get github.com/gpdf-dev/gpdf. Requer Go 1.22 ou posterior (testado até Go 1.26). 0 dependências externas — usa apenas a biblioteca padrão do Go.

Publique PDFs hoje.

Licença MIT. Grátis para sempre. Testado em Go 1.22 a 1.26. A um go get de distância.

$go get github.com/gpdf-dev/gpdf
Documentação completa →