/01
为发票而生
每页 $0.00005、p50 3 毫秒、内嵌 CJK、PDF/A-3 附件流——金融、ERP 与税务团队最先核对的四个数字。
// invoice — header + table pattern
{ "size": "a4",
"elements": [
{ "type": "text", "x": 18, "y": 22, ... },
{ "type": "table", "x": 18, "y": 60, ... }
]}
为什么 JSON 优于 HTML→PDF /02
天然适合物流面单
label_100_150、label_4_6_in 页面尺寸预设。矢量 GS1-128 / ITF-14 / SSCC、整体长度精度 0.1mm——承运商与 3PL 在高峰量级下出单不掉精度。
// 4×6 thermal shipping label
{ "size": "label_4_6_in",
"elements": [{
"type": "barcode",
"format": "code128",
"content": "1Z999AA10123456784" }]}
物流面单使用场景 /03
免费可视化设计器 + API
在 https://studio.gpdf.com 使用免费的所见即所得编辑器设计 PDF 模板,再用同一份 DocumentRequest JSON 通过 API 生成。没有另一套设计格式,也不会出现设计稿和生产 JSON 脱节。
// Studio and API share the same JSON
https://studio.gpdf.com
POST /api/v1/pdf/render
打开 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
矢量条码
30+ 种符号体系:GS1-128、QR、PDF417、DataMatrix。全部矢量,条码整体长度精度 0.1mm。
// 30+ formats: code128, qrcode, datamatrix, pdf417, ...
"type": "barcode",
"format": "code128",
"content": "INV-2026-001"
为什么矢量条码优于位图 /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 与 Factur-X /08
排版 + CJK 字体降级
自动回退与严格字体模式,防止 Latin、CJK、阿拉伯 RTL、印度系、emoji 文档出现静默的缺字符。
// inside style{}
"font_family": "NotoSans-Regular",
"font_mode": "prefer"
/09
密码与权限保护
AES-128 或 AES-256 文档加密 + 8 项权限锁(打印、修改、复制、注释、表单等)。专业版开放打开密码;企业版增加权限密码与逐项权限控制。
打印 · 修改 · 复制 · 表单填写 — 查看全部 8 项权限
- 打印
- 修改内容
- 复制 / 提取文本和图形
- 注释 / 表单字段修改
- 填写已有表单
- 辅助功能提取
- 页面插入 / 旋转 / 删除、书签 / 缩略图等装配操作
- 高质量打印
// inside settings
"security": {
"open_password": "reader-demo",
"owner_password": "owner-demo",
"algorithm": "aes_128",
"permissions": {
"print": true,
"modify": false,
"copy": false
}
}
settings.security 参考 /10
变量 + 分页
{page} / {total_pages} 在版面定稿后替换。keep_together、widow/orphan、page_break。
// element of type "variable"
{ "type": "variable",
"name": "page",
"scope": "system" }