安装
环境要求
- Go 1.22 或更高版本
- 无需外部依赖
安装
go get github.com/gpdf-dev/gpdf
模块配置
将 gpdf 添加到你的 go.mod:
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 (re-exports)
"github.com/gpdf-dev/gpdf/template" // Layer 3: Builder API, Components
"github.com/gpdf-dev/gpdf/document" // Layer 2: Types, Styles, Units
"github.com/gpdf-dev/gpdf/pdf" // Layer 1: Colors, PDF primitives
)
| 包 | 层级 | 用途 |
|---|---|---|
template | 3 | Builder API、JSON Schema、Go Templates、组件 |
document | 2 | 页面尺寸、单位(Mm、Pt 等)、样式、节点类型 |
pdf | 1 | 颜色(RGB、Hex、Gray)、PDF Writer、字体嵌入 |
qrcode | — | 二维码生成 |
barcode | — | 条形码生成(Code 128) |