설치
요구 사항
- Go 1.22 이상
- 외부 의존성 불필요
설치
go get github.com/gpdf-dev/gpdf
모듈 설정
go.mod에 gpdf를 추가합니다:
module your-project
go 1.22
require github.com/gpdf-dev/gpdf v1.0.4
gpdf는 외부 의존성이 전혀 없습니다 — Go 표준 라이브러리만 사용합니다. CGo, 시스템 라이브러리, 복잡한 빌드 과정이 필요 없습니다.
설치 확인
package main
import (
"fmt"
"github.com/gpdf-dev/gpdf/document"
"github.com/gpdf-dev/gpdf/template"
)
func main() {
doc := template.New(template.WithPageSize(document.A4))
page := doc.AddPage()
page.AutoRow(func(r *template.RowBuilder) {
r.Col(12, func(c *template.ColBuilder) {
c.Text("gpdf is working!")
})
})
data, err := doc.Generate()
if err != nil {
panic(err)
}
fmt.Printf("Generated PDF: %d bytes\n", len(data))
}
go run main.go
# Output: Generated PDF: 1234 bytes
패키지 구조
gpdf는 세 개의 레이어로 구성되어 있습니다. 필요한 것만 가져오세요:
import (
"github.com/gpdf-dev/gpdf" // Facade (재수출)
"github.com/gpdf-dev/gpdf/template" // Layer 3: Builder API, 컴포넌트
"github.com/gpdf-dev/gpdf/document" // Layer 2: 타입, 스타일, 단위
"github.com/gpdf-dev/gpdf/pdf" // Layer 1: 색상, PDF 프리미티브
)
| 패키지 | 레이어 | 용도 |
|---|---|---|
template | 3 | Builder API, JSON 스키마, Go 템플릿, 컴포넌트 |
document | 2 | 페이지 크기, 단위 (Mm, Pt 등), 스타일, 노드 타입 |
pdf | 1 | 색상 (RGB, Hex, Gray), PDF Writer, 폰트 임베딩 |
qrcode | — | QR 코드 생성 |
barcode | — | 바코드 생성 (Code 128) |