블로그

gpdf 프로젝트의 릴리스 노트, 렌더러 심층 분석, 커뮤니티 사례를 전합니다.

gpdf team

Go PDF에서 페이지 번호, 헤더, 푸터를 제대로 넣기

gpdf로 Go PDF에 헤더, 푸터, 'Page X of Y'를 추가하는 방법. 두 개의 builder 메서드와 2단계 페이지네이션이 총 페이지 수를 자동으로 채운다.

tutorialinternals
Taiki Noda

gpdf vs wkhtmltopdf vs Chromium — 2026년 PDF 생성 비교

wkhtmltopdf은 아카이브됐다. Chromium은 요청당 170 MB. gpdf는 13 µs/페이지, 브라우저 없이. 2026년 솔직한 비교.

comparisonbenchmarkmigration
Taiki Noda

gpdf의 Col 안에 Row를 중첩하려면?

할 수 없습니다. ColBuilder에 Row 메서드가 없고 gpdf의 12-컬럼 그리드는 의도적으로 평면입니다. 대체할 세 가지 관용 패턴을 소개합니다.

recipetutorialtemplates
Taiki Noda

테이블을 여러 페이지에 걸쳐 출력하려면?

아무것도 하지 않아도 된다. 한 페이지에 안 들어가는 행 수의 테이블을 넘기면 gpdf가 본문을 자동으로 페이지 분할하고 각 페이지 맨 위에 헤더를 반복한다.

recipetutorialtemplates
Taiki Noda

gpdf에서 한 단락에 두 글꼴을 섞는 방법

gpdf에서 한 단락 안에 여러 글꼴을 섞으려면 c.RichText를 쓰고 각 span에 template.FontFamily를 지정한다. c.Text는 문자열 전체에 한 글꼴만 적용한다.

recipetutorialcjk
Taiki Noda

Go PDF 테이블: 컬럼 너비, 줄무늬, 페이지 분할

Go에서 PDF 테이블 그리는 일은 사고 나기 쉽다. gpdf는 컬럼 너비·줄무늬·헤더 반복을 단 한 번의 Table 호출로 압축한다. API 전체와 트레이드오프.

tutorialtemplatescomparison
Taiki Noda

signintech/gopdf 에서 gpdf 로 — 좌표 계산이 사라진다

signintech/gopdf 는 동작하지만 셀, 선, 헤더 모두가 (x, y) 계산식이다. 이 글은 gopdf API 를 gpdf 로 매핑한다 — 같은 Go, 좌표 계산은 사라진다.

migrationcomparisontutorial
Taiki Noda

gpdf에서 이미지를 비율 유지로 컬럼에 맞추려면?

c.Image에 바이트만 넘기면 gpdf가 컬럼 너비에 비율 유지로 맞춘다. 명시적 크기는 FitWidth / FitHeight를 쓴다.

recipetutorial
Taiki Noda

gpdf 표에 얼룩말 줄무늬 행을 넣으려면?

template.TableStripe만 넘기면 된다. gpdf가 본문 행에 한 줄 걸러 배경색을 칠한다. 행 루프도, 셀별 스타일 지정도 필요 없다.

recipetutorialtemplates
Taiki Noda

gpdf에 커스텀 TrueType 폰트를 추가하려면?

TTF 바이트를 읽어 gpdf.WithFont로 패밀리를 등록하고 이름으로 참조한다. Inter, Roboto, 아이콘 폰트까지 어떤 TrueType이든 같은 방식으로 작동한다.

recipetutorial
Taiki Noda

unipdf는 AGPL 또는 유료. gpdf로 마이그레이션하는 가이드

UniDoc의 unipdf는 AGPL v3 또는 개발자별 유료 상용 라이선스. MIT, 의존성 0, 라이선스 키 불필요한 gpdf로 옮기는 방법.

migrationcomparisontutorial
Taiki Noda

Bootstrap 식 사고를 PDF로: gpdf의 12 컬럼 그리드

gpdf는 PDF 레이아웃에 Bootstrap의 12 컬럼 그리드를 차용했다. 정수 span 모델만 남기고 브레이크포인트·거터·order는 전부 버린 설계 판단을 정리한다.

internalstemplatescomparison
Taiki Noda

gpdf 테이블에서 열 너비를 지정하는 방법

c.Table 에 template.ColumnWidths(...) 를 전달한다. 값은 부모 Col 너비에 대한 백분율. 합계 100 으로 전체 폭, 끝부분을 생략하면 남은 공간이 자동 분배된다.

recipetutorial
Taiki Noda

gpdf 에서 투명 PNG 를 임베드하는 방법

PNG 바이트를 그대로 c.Image 에 넘긴다. gpdf 가 알파 채널을 PDF SMask 로 변환해 투명 배경이 그대로 렌더된다.

recipetutorial
Taiki Noda

gpdf에서 굵게와 기울임을 동시에 쓰는 방법

같은 span에 template.Bold()와 template.Italic()을 함께 전달하면 된다. 다만 TrueType 글꼴은 네 개 변형을 모두 등록하지 않으면 BoldItalic 조회가 조용히 기본 패밀리로 폴백한다.

recipetutorial
Taiki Noda

Go로 50줄 이하에서 인보이스 PDF 생성하기

실행 가능한 Go 인보이스 PDF를 50줄로. gpdf 하나로 의존성 제로, Chromium/CGO 불필요. 헤더, 테이블, 합계까지 모두 포함.

tutorialtemplates
Taiki Noda

gpdf에서 Source Han Sans JP(본고딕 JP)를 사용하려면?

Adobe의 GitHub 릴리스에서 TTF 버전을 받아 gpdf.WithFont로 등록한다. Noto Sans JP와 같은 글리프, 7가지 굵기, SIL OFL.

recipecjktutorial
Taiki Noda

gpdf가 다른 Go PDF 라이브러리보다 10–30배 빠른 이유

단일 페이지 13 µs, 100페이지 보고서 683 µs. 튜닝이 아니라 세 가지 아키텍처 결정이 쌓인 결과. 실제 코드 경로를 짚어본다.

benchmarkinternalscomparison
Taiki Noda

gpdf로 만든 PDF에서 일본어가 네모 (두부 문자) 로 나오는 이유와 해결법

일본어가 □ 로 나오는 건 대부분 폰트 미등록. 흔한 4가지 원인과 최단 수정법을 정리한다.

recipetroubleshootingcjk
Taiki Noda

gpdf에서 IPAex 고딕(IPAex Gothic)을 사용하려면?

ipaexg.ttf를 gpdf.WithFont로 등록한다. IPAex는 Regular 한 가지 굵기만 제공하므로 볼드는 합성하거나 명조와 페어링한다.

recipecjktutorial
Taiki Noda

gpdf의 12 컬럼 그리드는 어떻게 동작하나요?

gpdf의 12 컬럼 그리드는 r.Col(span, fn)에 1–12 정수를 넘깁니다. 컬럼 너비는 span/12 비율, 거터도 브레이크포인트도 없는 PDF 전용 설계.

recipetutorialtemplates
Taiki Noda

go-pdf/fpdf도 아카이브됐다. 2026년의 Go PDF 스택.

jung-kurt/gofpdf은 2021년, go-pdf/fpdf은 2025년에 아카이브. 2026년에 실제로 쓰는 Go PDF 스택은 gpdf — 이유와 트레이드오프.

migrationcomparisonbenchmark
Taiki Noda

Go로 일본어 PDF 만들기 — 2026 결정판 가이드

Go에서 일본어 PDF를 생성하는 완전한 순서. CGO 없이, Chromium 없이, 두부 글자 없이. 폰트·서브셋·혼용 조판까지.

tutorialcjktroubleshooting
Taiki Noda

2026 년 Go PDF 라이브러리 비교 쇼다운

2026 년에도 살아있는 Go PDF 라이브러리를 4 가지 워크로드에서 벤치마크. 라이선스·의존성·유지보수 상태를 정리.

comparisonbenchmark
Taiki Noda

gpdf에서 일본어 폰트를 임베드하려면?

TTF 바이트를 gpdf.WithFont에 전달하면 끝. 서브셋 임베딩은 자동, CGO도 필요 없음. Go에서 일본어 PDF를 만드는 최단 경로.

recipecjktutorial
Taiki Noda

gpdf에서 Noto Sans JP를 사용하려면?

gpdf.WithFont에 static 버전 NotoSansJP-Regular.ttf를 등록합니다. variable 폰트를 쓰지 않는 이유와 17,000개 글리프가 PDF에서 40 KB 미만까지 줄어드는 서브셋 구조를 설명합니다.

recipecjktutorial
Taiki Noda

gofpdf이 보관됨. gpdf로 마이그레이션하는 완전 가이드

gofpdf은 2021년 보관, 후속 go-pdf/fpdf도 2025년 중단. CJK 네이티브·의존성 제로의 순수 Go 라이브러리 gpdf로 옮기는 법.

migrationcomparisontutorial