Blog
Notas de versión, análisis del renderizador e historias de la comunidad del proyecto gpdf.
Números de página, cabeceras y pies de página en PDFs Go con gpdf
Cómo añadir cabeceras, pies de página y 'Page X of Y' a PDFs en Go con gpdf: dos métodos del builder y un paginador de dos pasadas que resuelve los totales solo.
gpdf vs wkhtmltopdf vs Chromium: generación de PDF en 2026
wkhtmltopdf está archivado. Chromium consume 170 MB por petición. gpdf renderiza una página en 13 µs sin navegador. Comparación honesta para 2026.
¿Cómo anidar un Row dentro de un Col en gpdf?
No se puede — ColBuilder no tiene método Row en gpdf. La cuadrícula de 12 columnas es plana a propósito. Tres idiomas reemplazan los rows anidados.
¿Cómo hago que una tabla abarque varias páginas?
No haces nada. Le pasas a gpdf una tabla con más filas de las que caben, y pagina el cuerpo y repite la cabecera en cada página automáticamente.
¿Cómo mezclo dos fuentes en el mismo párrafo en gpdf?
Para mezclar fuentes en un párrafo en gpdf, usa c.RichText y pon template.FontFamily en cada span. c.Text solo aplica una fuente a toda la cadena.
Tablas en PDFs con Go: anchos, rayas zebra, saltos de página
Las tablas son la parte más difícil de un PDF en Go. gpdf colapsa anchos, rayas y la repetición del encabezado en cada página dentro de una sola llamada.
De signintech/gopdf a gpdf: menos cálculos de coordenadas
signintech/gopdf funciona, pero cada celda, línea y encabezado es un cálculo (x, y). Esta guía mapea la API de gopdf a gpdf — el mismo Go, sin coordenadas.
¿Cómo escalo una imagen proporcionalmente para que quepa en una columna?
Pasa los bytes a c.Image y listo. gpdf escala a la columna manteniendo la proporción por defecto. Usa FitWidth o FitHeight cuando necesites un límite explícito.
¿Cómo creo filas con rayas (cebra) en una tabla?
Pasa template.TableStripe a la llamada Table. gpdf pinta las filas alternas del cuerpo con el color que le des. Sin bucle de filas, sin estilos celda a celda.
¿Cómo añado una fuente TrueType personalizada en gpdf?
Lee los bytes del TTF, regístralo con gpdf.WithFont y referencia el nombre de la familia. Funciona con cualquier TrueType — Inter, Roboto, fuentes de iconos.
unipdf es AGPL o de pago. Cómo migrar a gpdf.
El unipdf de UniDoc obliga a AGPL v3 o a licencia comercial por desarrollador. Mapea la API creator de unipdf al gpdf — MIT, cero deps, sin clave.
Pensamiento Bootstrap para PDF: la rejilla de 12 columnas de gpdf
gpdf adopta la rejilla de 12 columnas de Bootstrap para componer PDFs. Por qué 12, qué conservamos del modelo web y qué descartamos sin pensar dos veces.
¿Cómo defino el ancho de columnas en una tabla de gpdf?
Pasa template.ColumnWidths(...) a c.Table. Los valores son porcentajes del ancho de la Col padre. Suman 100 para cubrir todo; los valores finales que falten se reparten automáticamente.
¿Cómo incrusto un PNG con transparencia en gpdf?
Pasa los bytes del PNG a c.Image. gpdf decodifica el canal alfa en un objeto SMask de PDF y los fondos transparentes se renderizan correctamente.
¿Cómo uso negrita y cursiva juntas en gpdf?
Basta con pasar template.Bold() y template.Italic() al mismo span. Pero con fuentes TrueType hay que registrar las cuatro variantes: si falta BoldItalic, la búsqueda cae silenciosamente a la familia base.
Genera una factura PDF en Go en menos de 50 líneas
Código completo y ejecutable para generar una factura PDF en Go — 50 líneas con gpdf, cero dependencias, sin Chromium, sin CGO. Incluye cabecera, tabla y total.
¿Cómo uso Source Han Sans JP con gpdf?
Registra la variante TTF de Source Han Sans JP desde la release de GitHub de Adobe con gpdf.WithFont. Siete pesos, SIL OFL, mismos glifos que Noto Sans JP.
Por qué gpdf es 10–30 veces más rápido que otras bibliotecas Go PDF
gpdf genera una página en 13 µs y un informe de 100 páginas en 683 µs. No es un truco de tuning: son tres decisiones arquitectónicas que se suman. Este artículo recorre el código.
¿Por qué mi PDF muestra rectángulos (tofu) en lugar de japonés?
Los rectángulos vacíos en lugar de caracteres japoneses significan que el PDF no encontró glifos para esos code points. Cuatro causas y sus soluciones.
¿Cómo uso IPAex Gothic en gpdf?
Registra ipaexg.ttf con gpdf.WithFont. IPAex Gothic trae solo un peso Regular bajo la IPA Font License: la negrita se sintetiza o se empareja con Mincho.
¿Cómo funciona la cuadrícula de 12 columnas de gpdf?
La cuadrícula de 12 columnas de gpdf usa r.Col(span, fn) con span de 1 a 12. El ancho de columna es (span/12) de la fila. Sin breakpoints ni canalones, diseñada para PDF.
go-pdf/fpdf también archivado. El stack Go PDF de 2026.
jung-kurt/gofpdf se archivó en 2021 y go-pdf/fpdf en 2025. Este es el stack Go PDF que usamos en 2026 — gpdf, los trade-offs y el porqué.
PDFs en japonés con Go: la guía definitiva de 2026
Cómo generar PDFs en japonés con Go en 2026 — fuentes, subconjuntos TrueType, kanji/kana/ASCII mezclados, y por qué no hacen falta CGO ni Chromium.
Comparativa de bibliotecas Go PDF 2026
Todas las bibliotecas Go PDF que siguen vivas en 2026, comparadas en 4 cargas de trabajo, con licencias, dependencias y estado de mantenimiento.
¿Cómo incrusto una fuente japonesa en gpdf?
Pasa los bytes del TTF a gpdf.WithFont al construir el documento. Tres líneas, subset embedding automático y sin CGO.
¿Cómo uso Noto Sans JP con gpdf?
Registra el TTF static de NotoSansJP-Regular con gpdf.WithFont. No uses la variable font. gpdf subsetea los 17.000 glifos a menos de 40 KB por PDF.
gofpdf está archivado. Guía para migrar a gpdf.
jung-kurt/gofpdf fue archivado en 2021 y go-pdf/fpdf en 2025. Guía para migrar a gpdf — Go puro, cero dependencias, soporte CJK nativo.