製品・APIガイド

テンプレート一覧を取得

テンプレートとは

テンプレートは、選択したコードで保存されるドキュメントデザインです。編集を続ける下書きと、本番生成に使用する公開済みバージョンが同時に存在します。保存だけでは公開されないため、未完成の変更が顧客に届くことはありません。

ワークスペース内のテンプレートと、公開済みのバージョン番号を返します。生成時には、テンプレートのコードを指定します。

リクエスト
curl https://api.pdfgine.com/api/v1/templates \
  -H "X-PDFgine-Key: $PDFGINE_KEY"
レスポンス
[
  {
    "templateId": "tpl_eca4c9985ad74913902f0469469936a1",
    "code": "invoice",
    "name": "法人向け請求書",
    "version": 5,
    "publishedVersion": 1,
    "publishedAt": "2026-08-23T08:23:21+00:00"
  }
]

ページ番号の書式

ページ番号要素のcontentは書式です。{{ page }}は現在のページ、{{ pages }}は総ページ数になります。“{{ page }} / {{ pages }}”と入力すると、“3 / 12”と印刷されます。PDFではページカウンター、WordではPAGE/NUMPAGESフィールドコードを使い、ページの追加に応じて自動更新します。プレースホルダーが含まれない場合、contentは無視され、ページ番号のみを表示します。

バージョンの保存

保存時には、編集中と認識しているバージョンを指定します。その間にほかの人が保存していた場合は、409と現在のバージョンが返されるため、黙って上書きされることはありません。

cURL
curl -X POST https://api.pdfgine.com/api/v1/templates \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "code": "invoice",
        "name": "法人向け請求書",
        "saveMode": "manual",
        "expectedVersion": 5,
        "changeReason": "ロゴを右余白へ移動しました。",
        "definition": {
          "page": { "size": "A4", "orientation": "portrait" },
          "elements": [
            { "type": "text", "text": "法人向け請求書", "fontSize": 24 }
          ]
        }
      }'
レスポンス
HTTP/1.1 409 Conflict

{
  "type": "https://pdfgine.dev/problems/template-conflict",
  "templateCode": "invoice",
  "currentVersion": 6,
  "currentDraftRevision": 0
}

expectedVersionは任意ですが、指定を推奨します。指定しない場合は最後の書き込みが優先され、前の変更が記録を残さず消えてしまいます。

よくある問題

  • 409は、何も確認せず再試行するエラーではありません。currentVersionを読み取り、新しい定義に変更を重ねてから、再度保存してください。
  • 保存と公開は異なります。下書きを公開するまで、本番生成には最後に公開したバージョンが使用されます。
  • 一覧では最大200件のテンプレートが返されます。続きがある場合は、rel="next"付きのLinkヘッダーを使用してください。最初のページがライブラリ全体だと判断しないでください。
  • 読み取りにはtemplates:read、保存にはtemplates:writeが必要です。読み取り専用キーで保存しようとすると、401ではなく403が返されます。
  • ほかのすべての呼び出しは、コードでテンプレートを特定します。テンプレート名は自由に変更できますが、コードを変更すると新しいテンプレートになります。