gpdf는 표준 라이브러리만으로 동작하는 Go PDF 라이브러리입니다. 12열 그리드로 페이지를 짜고, 한국어·일본어·중국어 폰트를 임베드하며, 한 페이지를 약 13 µs에 렌더링합니다.
go.mod에는 Go 자체만 있습니다. cgo도, 헤드리스 브라우저도, 서비스 옆에 둘 네이티브 바이너리도 필요 없습니다.
행과 12열 그리드가 페이지에 흘러 들어갑니다. 표는 페이지를 넘어 나뉘고 글은 자동으로 줄바꿈됩니다.
TrueType 폰트는 사용한 글리프만 서브셋으로 넣어, 한중일 문자가 어느 서버에서나 똑같이 보입니다.
벤치마크
같은 4개의 문서를 gpdf, go-pdf/fpdf, signintech/gopdf, maroto v2로 만들었습니다. 문서당 시간과 메모리, 낮을수록 좋습니다.
5회 실행의 중앙값, 각 100회 반복. Apple M1, Go 1.25. 벤치마크 코드는 gpdf 저장소에 있습니다.
벤치마크 코드 보기Go 네이티브 아키텍처
Go용 PDF 구성의 상당수는 언어 밖에 기댑니다. 사이드카의 헤드리스 브라우저, HTTP로 호출하는 HTML→PDF 서비스, 네이티브 라이브러리 바인딩. 모두 배포하고 패치하고 모니터링할 런타임이 하나 더 늘어납니다.
gpdf는 첫 줄부터 Go로 작성되었습니다. 여러분의 바이너리에 컴파일되어 Go가 도는 곳이면 어디서나 동작하고, 의존성 트리는 표준 라이브러리뿐이라 보안팀이 추가로 감사할 것이 없습니다.
go get 한 번, 바이너리 하나. 개발과 운영에서 같은 출력.
여러분의 Go 앱
HTTP 호출 또는 cgo 바인딩헤드리스 브라우저 · JVM · 네이티브 라이브러리
배포하고 패치하고 모니터링할 런타임이 또 하나.
여러분의 Go 앱
go getgithub.com/gpdf-dev/gpdf
바이너리 하나 · 표준 라이브러리만 · cgo 없음
실행 환경
CJK 우선
많은 PDF 라이브러리가 CJK를 뒷전으로 둡니다. gpdf는 처음부터 CJK를 전제로 만들었습니다.
어떤 TrueType 폰트든 임베드할 수 있고, 파일에는 사용한 글리프만 기록됩니다.
한국어, 일본어, 중국어, 라틴 문자를 한 문단이나 표에 섞을 수 있습니다.
두부(□)도, 글자 깨짐도 없고, 서버에 설치된 폰트에 좌우되지 않습니다.
보존, 보안, 후처리도 같은 모듈에 들어 있습니다. 그래도 의존성은 Go 표준 라이브러리뿐입니다.
XMP 메타데이터를 갖춘 PDF/A-1b·PDF/A-2b. 수십 년 동안 읽혀야 하는 문서에.
소유자·사용자 비밀번호와 인쇄·복사·편집 권한 제어.
완성된 PDF에 RFC 3161 타임스탬프가 있는 PKCS#7 서명을 적용합니다.
모든 페이지에 반복되는 머리글, 바닥글, 페이지 번호.
QR과 Code 128을 네이티브로 생성하고 PNG·JPEG 이미지와 함께 배치합니다.
Go 안에서 PDF를 합치거나 페이지 범위를 꺼냅니다.
gpdf와 다른 선택지
무엇을 배포하고, 무엇에 비용을 내고, 무엇을 계속 패치해야 하는가.
스택에 맞는 진입점을 고르세요. 세 가지 모두 같은 렌더링 엔진을 거칩니다.
go get github.com/gpdf-dev/gpdf. Go 1.22 이상에서 동작합니다.
유창하고 타입 안전한 Go: PageBuilder → RowBuilder → ColBuilder.
문서를 JSON으로 기술해 어떤 서비스나 언어에서든 보낼 수 있습니다.
text/template으로 JSON 스키마를 구동해 하나의 소스로 수천 개의 문서를.
복사해서 고쳐 쓰는 청구서, 영수증, 견적서.
모든 예제는 실제 PDF를 렌더링하는 테스트입니다. 표부터 서명까지.
릴리스마다 모든 예제를 저장된 PDF와 바이트 단위로 비교합니다.
생성된 파일을 CI에서 PDF 사양에 맞춰 검증합니다.
CI는 지원하는 모든 Go 버전에서 레이스 감지기를 켜고 전체 테스트를 실행합니다.
gpdf 푸터에 페이지 번호 X / Y를 한 줄로 표시하려면?
2026년 11월 12일
2026년 11월 10일
2026년 9월 2일
Go PDF에서 페이지 번호, 헤더, 푸터를 제대로 넣기
2026년 5월 19일
FAQ
gpdf는 외부 의존성 없이 순수 Go로 작성된 MIT 라이선스 PDF 생성 라이브러리입니다. 12열 그리드로 페이지를 배치하고 한중일을 포함한 TrueType 폰트를 임베드합니다.
단일 페이지를 약 13 µs에 렌더링합니다. 공개된 벤치마크에서 대부분의 문서에 대해 go-pdf/fpdf, signintech/gopdf, maroto v2보다 약 10~30배 빠릅니다.
네. TrueType 폰트를 임베드하면 gpdf는 사용한 글리프만 기록합니다. 출력은 서버에 설치된 폰트에 좌우되지 않습니다.
네. gpdf는 MIT 라이선스이므로 상용 제품에서 사용, 수정, 재배포할 수 있습니다.
Go 1.22 이상입니다. CI는 Go 1.22부터 1.26까지 테스트를 실행합니다.