Blog

Notas de versão, análises do renderizador e histórias da comunidade do projeto gpdf.

gpdf team

Número de página, cabeçalho e rodapé em PDFs Go com gpdf

Como adicionar cabeçalho, rodapé e 'Page X of Y' a PDFs em Go com gpdf: dois métodos do builder e um paginador de duas passagens que resolve os totais sozinho.

tutorialinternals
Taiki Noda

gpdf vs wkhtmltopdf vs Chromium: geração de PDF em 2026

wkhtmltopdf foi arquivado. Chromium consome 170 MB por requisição. gpdf renderiza uma página em 13 µs sem navegador. Comparação honesta para 2026.

comparisonbenchmarkmigration
Taiki Noda

Como aninhar um Row dentro de um Col no gpdf?

Não dá — ColBuilder não tem método Row no gpdf. A grade de 12 colunas é plana de propósito. Três idiomas substituem os rows aninhados.

recipetutorialtemplates
Taiki Noda

Como faço uma tabela se estender por várias páginas?

Você não faz nada. Passe ao gpdf uma tabela com mais linhas do que cabe, e ele pagina o corpo e repete o cabeçalho em cada página automaticamente.

recipetutorialtemplates
Taiki Noda

Como misturo duas fontes no mesmo parágrafo no gpdf?

Para misturar fontes em um parágrafo no gpdf, use c.RichText e defina template.FontFamily em cada span. c.Text só aplica uma fonte à string inteira.

recipetutorialcjk
Taiki Noda

Tabelas em PDFs com Go: larguras, listras zebra, quebra de página

Tabelas são a parte mais difícil de um PDF em Go. gpdf reúne larguras, listras e a repetição de cabeçalho a cada página em uma única chamada Table.

tutorialtemplatescomparison
Taiki Noda

De signintech/gopdf para gpdf: menos cálculo de coordenadas

signintech/gopdf funciona, mas cada célula, linha e cabeçalho é um cálculo (x, y). Este guia mapeia a API do gopdf para gpdf — mesmo Go, sem coordenadas.

migrationcomparisontutorial
Taiki Noda

Como escalo uma imagem proporcionalmente para caber em uma coluna?

Passe os bytes para c.Image. gpdf já escala mantendo a proporção pela largura da coluna. Use FitWidth ou FitHeight quando precisar de um limite explícito.

recipetutorial
Taiki Noda

Como faço linhas com listras (zebra) em uma tabela?

Passe template.TableStripe na chamada Table. O gpdf pinta as linhas alternadas do corpo com a cor que você fornecer. Sem laço de linhas, sem estilizar célula a célula.

recipetutorialtemplates
Taiki Noda

Como adiciono uma fonte TrueType personalizada ao gpdf?

Carregue os bytes do TTF, registre com gpdf.WithFont e referencie o nome da família. Funciona com qualquer TrueType — Inter, Roboto, fontes de ícones.

recipetutorial
Taiki Noda

unipdf é AGPL ou pago. Como migrar para o gpdf.

O unipdf da UniDoc obriga AGPL v3 ou licença comercial por desenvolvedor. Este guia mapeia a API creator do unipdf para gpdf — MIT, zero deps, sem chave.

migrationcomparisontutorial
Taiki Noda

Pensamento Bootstrap para PDF: a grade de 12 colunas do gpdf

gpdf adota a grade de 12 colunas do Bootstrap para diagramar PDFs. Por que 12, o que mantemos do modelo web e o que descartamos sem dó.

internalstemplatescomparison
Taiki Noda

Como defino a largura das colunas em uma tabela do gpdf?

Passe template.ColumnWidths(...) para c.Table. Os valores são porcentagens da largura da Col pai. Some 100 para preencher tudo; valores finais ausentes são distribuídos automaticamente.

recipetutorial
Taiki Noda

Como embuto um PNG com transparência no gpdf?

Passe os bytes do PNG para c.Image. O gpdf decodifica o canal alpha em um objeto SMask do PDF e fundos transparentes são renderizados corretamente.

recipetutorial
Taiki Noda

Como uso negrito e itálico juntos no gpdf?

Basta passar template.Bold() e template.Italic() no mesmo span. Mas fontes TrueType exigem as quatro variantes registradas, senão a busca por BoldItalic cai silenciosamente para a família base.

recipetutorial
Taiki Noda

Gere uma fatura em PDF em Go em menos de 50 linhas

Código completo e executável para gerar uma fatura PDF em Go — 50 linhas com gpdf, zero dependências, sem Chromium, sem CGO. Inclui cabeçalho, tabela e total.

tutorialtemplates
Taiki Noda

Como usar Source Han Sans JP no gpdf?

Registre a variante TTF de Source Han Sans JP do release no GitHub da Adobe com gpdf.WithFont. Sete pesos, SIL OFL, mesmos glifos que Noto Sans JP.

recipecjktutorial
Taiki Noda

Por que gpdf é 10–30 vezes mais rápido que outras bibliotecas Go PDF

gpdf gera uma página em 13 µs e um relatório de 100 páginas em 683 µs. Não é truque de tuning — são três decisões arquiteturais que se somam. Percorremos o código.

benchmarkinternalscomparison
Taiki Noda

Por que meu PDF mostra retângulos (tofu) no lugar de japonês?

Retângulos vazios em vez de caracteres japoneses significam que o PDF não encontrou glifos para esses code points. Quatro causas e como corrigir.

recipetroubleshootingcjk
Taiki Noda

Como usar IPAex Gothic no gpdf?

Registre ipaexg.ttf com gpdf.WithFont. IPAex Gothic vem com um único peso Regular sob a IPA Font License; o negrito é sintetizado ou pareado com Mincho.

recipecjktutorial
Taiki Noda

Como funciona o grid de 12 colunas do gpdf?

O grid de 12 colunas do gpdf usa r.Col(span, fn) com span de 1 a 12. A largura da coluna é (span/12) da linha. Sem breakpoints, sem gutter, previsível por design.

recipetutorialtemplates
Taiki Noda

go-pdf/fpdf também foi arquivado. O stack Go PDF de 2026.

jung-kurt/gofpdf foi arquivado em 2021, go-pdf/fpdf em 2025. Este é o stack Go PDF que usamos em 2026 — gpdf, os trade-offs e o porquê.

migrationcomparisonbenchmark
Taiki Noda

PDFs em japonês com Go: o guia definitivo de 2026

Como gerar PDFs em japonês com Go em 2026 — fontes, subconjuntos TrueType, kanji/kana/ASCII misturados, e por que não precisa de CGO nem Chromium.

tutorialcjktroubleshooting
Taiki Noda

Comparativo de bibliotecas Go PDF 2026

Todas as bibliotecas Go PDF ainda vivas em 2026, comparadas em 4 cargas de trabalho, com licenças, dependências e estado de manutenção.

comparisonbenchmark
Taiki Noda

Como incorporar uma fonte japonesa no gpdf?

Passe os bytes do TTF para gpdf.WithFont ao construir o documento. Três linhas, subset embedding automático e sem CGO.

recipecjktutorial
Taiki Noda

Como usar Noto Sans JP com gpdf?

Registre o TTF static NotoSansJP-Regular com gpdf.WithFont. Não use a variable font. O gpdf faz subset dos 17.000 glifos para menos de 40 KB por PDF.

recipecjktutorial
Taiki Noda

gofpdf foi arquivado. Guia de migração para gpdf.

jung-kurt/gofpdf foi arquivado em 2021 e go-pdf/fpdf em 2025. Este guia mapeia toda a API do gofpdf para o gpdf — Go puro, zero dependências, CJK nativo.

migrationcomparisontutorial