能力

把基础但关键的细节做到位。

gPdf 完整能力面:JSON 原生排版、矢量条码、CJK + 阿拉伯 + 天城体字体内嵌、PDF/A 归档配置、电子发票附件流、分页控制。

浏览使用场景
/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" }