ピクセル単位の制御
x/y はミリメートル、x_anchor で右端揃え、ラベルではサブミリメートル精度で配置。座標であって、近似ではありません。
// inside elements[i]
"x_anchor": {
"reference": "content_right",
"offset": 6
} PDF ラッパーに入ったブラウザのスクリーンショットではなく、本物のドキュメントセマンティクス。
x/y はミリメートル、x_anchor で右端揃え、ラベルではサブミリメートル精度で配置。座標であって、近似ではありません。
// inside elements[i]
"x_anchor": {
"reference": "content_right",
"offset": 6
} 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 font_mode は strict(宣言したフォントが全グリフをカバーする必要あり)、prefer(内蔵フォントへフォールバック)、auto(エンジン任せ)の 3 段。auto/prefer 全失敗時は API-504 を返します —— 静かに失敗しません。
// inside style{}
"font_family": "NotoSans-Regular",
"font_mode": "prefer" settings.profile = "pdfa-3b" を指定するだけで PDF/A-3b 準拠と、Factur-X / ZUGFeRD が要求する埋め込み XML 添付ストリームが両方有効になります。1 フィールドで 1 つの準拠文書。
// top-level on DocumentRequest
"settings": {
"profile": "pdfa-3b"
} PDF/A and Factur-X, explained {page} / {total_pages} はレイアウト後に解決。keep_together、widow/orphan、page_break ブロック。
// element of type "variable"
{ "type": "variable",
"name": "page",
"scope": "system" } ページをまたぐ row_span、ヘッダー繰り返し、alternate_fill、複合二重ボーダー。常に壊れる 1 %。
// inside table element
"pagination": {
"keep_spans_together": true
} 同じ DocumentRequest JSON が POST /api/v1/pdf/render と editor.gpdf.com の GUI エディタを駆動。ビジュアル編集、API 出力、手書き JSON —— 3 つの経路が同じファイルを往復します。
// three routes, one engine
POST /api/v1/pdf/render
POST /api/v1/template-render
POST /api/v1/e-invoice/render Read the API reference ページあたり $0.00005、p50 3 ms、CJK 組み込み、PDF/A-3 添付ストリーム。フィンテック、ERP、税務コンプライアンスチームが最初に確認する 4 つの数字。
// invoice — header + table pattern
{ "size": "a4",
"elements": [
{ "type": "text", "x": 18, "y": 22, ... },
{ "type": "table", "x": 18, "y": 60, ... }
]} Why JSON beats HTML→PDF 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