/01
인보이스를 위해 구축
페이지당 $0.00005, p50 3 ms, 내장 CJK, PDF/A-3 첨부 스트림. 핀테크, ERP, 세무 컴플라이언스 팀이 먼저 확인하는 네 숫자.
// invoice — header + table pattern
{ "size": "a4",
"elements": [
{ "type": "text", "x": 18, "y": 22, ... },
{ "type": "table", "x": 18, "y": 60, ... }
]}
Why JSON beats HTML→PDF /02
배송 라벨을 위해 구축
label_100_150 및 label_4_6_in 크기 프리셋. 0.1 mm 정밀도의 벡터 GS1-128, ITF-14, SSCC. 운송사와 3PL은 피크 시간에도 래스터화된 바코드 없이 출력할 수 있습니다.
// 4×6 thermal shipping label
{ "size": "label_4_6_in",
"elements": [{
"type": "barcode",
"format": "code128",
"content": "1Z999AA10123456784" }]}
Shipping-label use case /03
무료 비주얼 편집기 + API
https://studio.gpdf.com의 무료 WYSIWYG 편집기에서 PDF 템플릿을 디자인하고, 같은 DocumentRequest JSON을 API로 생성합니다. 별도 디자인 포맷도, 운영 JSON과의 어긋남도 없습니다.
// Studio and API share the same JSON
https://studio.gpdf.com
POST /api/v1/pdf/render
Open Studio /04
JSON 네이티브 레이아웃
페이지, 좌표, 요소, 스타일, 머리글, 바닥글, 배경, 워터마크, 스탬프를 JSON에 직접 정의. 좌표는 밀리미터 단위, 근사치가 아님.
// inside elements[i]
"x_anchor": {
"reference": "content_right",
"offset": 6
}
/05
페이지네이션하는 테이블
페이지를 넘는 row_span, 헤더 반복, alternate_fill, 복합 이중 테두리. 항상 깨지는 1%.
// inside table element
"pagination": {
"keep_spans_together": true
}
/06
벡터 바코드
GS1-128, QR, PDF417, DataMatrix를 포함한 30+ 심볼로지. 모두 벡터. 전체 길이 0.1 mm 정확도.
// 30+ formats: code128, qrcode, datamatrix, pdf417, ...
"type": "barcode",
"format": "code128",
"content": "INV-2026-001"
Why vector beats raster /07
PDF/A + 전자 인보이스 출력
PDF/A 보존 프로파일과 PDF/A-3b 전자 인보이스 패키지(임베디드 CII XML)를 Factur-X / ZUGFeRD 워크플로용으로 생성. 한 필드로 PDF/A-3b 패키징 경로 활성화.
// top-level on DocumentRequest
"settings": {
"profile": "pdfa-3b"
}
PDF/A and Factur-X, explained /08
타이포그래피 + CJK 폴백
자동 폴백과 엄격 폰트 모드로 Latin, CJK, RTL 아랍어, 인도계, 이모지 문서에서 조용한 글리프 누락 방지.
// inside style{}
"font_family": "NotoSans-Regular",
"font_mode": "prefer"
/09
암호 및 권한 잠금
AES-128 또는 AES-256 문서 암호화 + 8개 권한 잠금(인쇄, 수정, 복사, 주석, 양식 등). Pro: 열기 암호. Enterprise: 소유자 암호 + 권한별 개별 제어.
인쇄 · 수정 · 복사 · 양식 작성 — 전체 8개 권한 보기
- 인쇄
- 내용 수정
- 텍스트 및 그래픽 복사 / 추출
- 주석 / 양식 필드 수정
- 기존 양식 작성
- 접근성 추출
- 조립(페이지 삽입 / 회전 / 삭제, 책갈피)
- 고품질 인쇄
// inside settings
"security": {
"open_password": "reader-demo",
"owner_password": "owner-demo",
"algorithm": "aes_128",
"permissions": {
"print": true,
"modify": false,
"copy": false
}
}
settings.security reference /10
변수 + 페이지네이션
{page} / {total_pages}는 레이아웃 후 해결됨. keep_together, widow/orphan, page_break 블록.
// element of type "variable"
{ "type": "variable",
"name": "page",
"scope": "system" }