순수 Go PDF,
좌표 없이.
gpdf는 MIT 라이선스의 순수 Go PDF 생성 라이브러리입니다. 외부 의존성 0, Go 표준 라이브러리만 사용합니다. 12 컬럼 그리드로 레이아웃을 선언하고 TrueType 임베딩으로 일본어·중국어·한국어를 네이티브로 렌더링합니다. 단일 페이지 문서를 약 13 µs에 출력하며, gofpdf·gopdf·Maroto v2보다 10–30배 빠릅니다.
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) }
순수 Go, 의존성 0
Go 표준 라이브러리만 — 외부 패키지 0, CGO 없음, C 툴체인 없음. go build로 만든 단일 바이너리가 Linux 컨테이너·AWS Lambda·엣지에서 동일하게 동작합니다.
12 컬럼 그리드, 좌표는 없다
Bootstrap 스타일 레이아웃. r.Col(7) + r.Col(5) = 12. 레이아웃 결정은 코드에 담는다, 픽셀 자에 담지 않는다. 행과 열은 원하는 만큼 중첩할 수 있다.
CJK, 기본 일등 시민
TrueType 폰트 임베딩을 내장한다. 일본어·중국어·한국어 — 3개 CJK 문자 체계를 그대로 렌더링한다. 두부(□)도 깨짐도 벤더 패치도 필요 없다.
속도, 숫자로 보기
cjk 청구서로 측정
벤치마크: 청구서 생성 — 일본어·중국어·한국어 텍스트, 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배 빠름
단일 페이지 문서 기준 페이지당 약 13 µs. gofpdf·gopdf·Maroto v2와 벤치마크 비교한 결과.
Fluent Builder API
PageBuilder → RowBuilder → ColBuilder. 모든 설정은 Functional Options(WithXxx)로 통일된다.
JSON Schema + Go Templates
PDF 구조를 JSON으로 선언하고 text/template로 구동한다. 단일 소스로부터 수천 건의 PDF를 대량 생성할 수 있다.
자주 묻는 질문
시작 전에 확인할 것
gpdf란 무엇인가?
gpdf는 MIT 라이선스의 순수 Go PDF 생성 라이브러리입니다. 외부 의존성은 0이며 Go 표준 라이브러리만 사용합니다. Bootstrap 스타일의 12 컬럼 그리드로 레이아웃을 선언하고, TrueType 폰트 임베딩을 통해 CJK(일본어·중국어·한국어)를 네이티브로 지원합니다.
gpdf는 대안과 비교해 얼마나 빠른가?
gpdf는 단일 페이지 PDF 문서를 약 13 마이크로초에 렌더링합니다. gofpdf·gopdf·Maroto v2와의 벤치마크 비교에서 10–30배 빠른 결과가 나왔습니다.
gpdf는 한국어·일본어·중국어를 지원하는가?
네. gpdf는 TrueType 폰트를 임베드하여 일본어(JP)·중국어(ZH)·한국어(KR)의 3가지 CJK 문자 체계를 모두 네이티브로 렌더링합니다. 두부(□)도 깨짐도 발생하지 않습니다.
gpdf는 무료로 사용할 수 있는가?
네. gpdf는 MIT 라이선스의 완전한 오픈 소스입니다. 개인 사용, 상업 사용, 재배포까지 모두 자유롭습니다.
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 한 줄로 시작된다.