製品・APIガイド

アセット

アセットのアップロード

ロゴ、署名、フォントは一度アップロードし、その後はIDで参照します。リクエストはmultipart形式で、ファイルはfileというフィールドに指定し、altTextは任意です。

リクエスト
curl -X POST https://api.pdfgine.com/api/v1/assets \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -F "file=@logo.png" \
  -F "altText=会社のロゴ"
HTTP 201
{
  "assetId": "ast_985f87e2b22d486db2d6d8bacd29288e",
  "fileName": "logo.png",
  "contentType": "image/png",
  "length": 20184,
  "altText": "会社のロゴ",
  "createdAt": "2026-09-26T15:29:44.8420041+00:00",
  "expiresAt": null,
  "fontEmbedding": null
}

種類は、送信されたContent-Typeではなく、ファイルの先頭のバイト列から判定します。実際にはPDFである.pngファイルは拒否されます。PNG、JPEG、WebP、TTF、OTFに対応し、1ファイルあたり最大10 MBです。

ドキュメントでの使用

テンプレートが画像を要求する場所に、IDを送信してください。同じフィールドはdata: URIも受け付けますが、アップロード済みのアセットは転送量が少なく、再利用できます。

リクエスト
curl -X POST https://api.pdfgine.com/api/v1/render \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "templateCode": "invoice",
        "format": "pdf",
        "data": { "logo": "ast_985f87e2b22d486db2d6d8bacd29288e" }
      }'

一時アセット、一覧取得、削除

1つのドキュメントにだけ必要な画像は、手動で削除する必要がありません。expiresInMinutesに1~10080(7日間)を指定すると、アセットは自動で削除されます。

リクエスト
curl -X POST https://api.pdfgine.com/api/v1/assets \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -F "file=@signature.png" \
  -F "expiresInMinutes=60"

# 一覧取得、1つのアセットの内容取得、削除
curl https://api.pdfgine.com/api/v1/assets -H "X-PDFgine-Key: $PDFGINE_KEY"
curl https://api.pdfgine.com/api/v1/assets/ast_985f87e2b22d486db2d6d8bacd29288e/content \
  -H "X-PDFgine-Key: $PDFGINE_KEY" -o logo.png
curl -X DELETE https://api.pdfgine.com/api/v1/assets/ast_985f87e2b22d486db2d6d8bacd29288e \
  -H "X-PDFgine-Key: $PDFGINE_KEY"

フォントと埋め込みの許可

フォントファイルは、fsTypeビットでドキュメントに許可する利用方法を指定しています。PDFgineはアップロード時にこれを読み取り、fontEmbeddingを返すため、ドキュメントを開いた後ではなく、生成前に埋め込みの可否を確認できます。

fontEmbedding ドキュメントで許可される利用方法
installable制限なし。PDFとWordの両方に埋め込まれます。
editablePDFとWordの両方に埋め込まれます。
preview-printPDFには埋め込まれます。Word文書は編集できるため、Wordには埋め込まず、Word側でフォントを置き換えます。
restrictedどこにも埋め込まれません。ドキュメントは生成され、代わりに閲覧者側のフォントが使用されます。
bitmap-onlyビットマップの埋め込みのみが許可されていますが、ドキュメントでは利用できないため、埋め込まれません。
unstatedファイルに許可が指定されていません。OpenType仕様に従い、埋め込み可能として扱います。

WOFFとWOFF2はアップロード時に拒否されます。Word文書には埋め込めないため、同じテンプレートでもPDFでは正しく、Wordでは誤って表示されることになり、送付後にしか違いに気づけないためです。

組み込みフォント

これらのフォントファミリーは製品に含まれています。style.fontFamilyとpage.defaultFontに名前を指定して使用してください。同じ書体がPDF、Word、エディターで使用されます。指定のウェイトがなくても拒否されず、最も近い書体で出力されます。

フォントファミリー グループ ウェイト 対応文字体系
Inter sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Roboto sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Montserrat sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, cyrillic, vietnamese
Poppins sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin
DM Sans sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin
Nunito sans 200, 300, 400, 500, 600, 700, 800, 900 latin, cyrillic, vietnamese
Manrope sans 200, 300, 400, 500, 600, 700, 800 latin, greek, cyrillic, vietnamese
Noto Sans sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Plus Jakarta Sans sans 200, 300, 400, 500, 600, 700, 800 latin, vietnamese
Work Sans sans 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, vietnamese
Roboto Condensed condensed 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Oswald condensed 200, 300, 400, 500, 600, 700 latin, latin-ext, cyrillic, vietnamese
Noto Serif serif 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
EB Garamond serif 400, 500, 600, 700, 800 latin, latin-ext, greek, cyrillic, vietnamese
Newsreader serif 200, 300, 400, 500, 600, 700, 800 latin, vietnamese
Literata serif 200, 300, 400, 500, 600, 700, 800, 900 latin, greek, cyrillic, vietnamese
Tinos serif 400, 700 latin, latin-ext, greek, cyrillic, vietnamese
Rokkitt serif 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, vietnamese
Inconsolata mono 200, 300, 400, 500, 600, 700, 800, 900 latin, vietnamese
Noto Sans Mono mono 100, 200, 300, 400, 500, 600, 700, 800, 900 latin, latin-ext, greek, cyrillic, vietnamese
Arial system 400, 700
Georgia system 400, 700

アップロードが拒否された場合

拒否される場合はすべて400で応答し、errors.fileに理由を含めます。この文には対処方法が記載されているため、アップロードしたユーザーにそのまま表示してください。

HTTP 400
{
  "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
  "title": "One or more validation errors occurred.",
  "status": 400,
  "errors": {
    "file": ["Word出力で使用できるように、TTFまたはOTFフォントをアップロードしてください。WOFFとWOFF2ファイルをWordドキュメントに埋め込むことはできません。"]
  },
  "correlationId": "505aac87e234a7b4669e6203ac7ffcd5"
}
エラー →

よくある問題

  • 種類はファイル名ではなく、先頭のバイト列から判定されます。PDFを.pngに改名しても画像にはならず、アップロードは拒否されます。
  • WOFFとWOFF2は意図的に拒否されます。Wordに埋め込めず、同じテンプレートでもPDFでは正しく、Wordでは誤って表示されるためです。TTFまたはOTFをアップロードしてください。
  • アップロードのレスポンスにはfontEmbeddingが含まれます。無視すると、ドキュメントの送付後にフォントの置き換えに気づくことになります。
  • data: URIはリクエストのたびに送信されます。すべてのドキュメントに表示するロゴなら、一度アップロードし、IDを送信してください。
  • 1つのドキュメントに必要な画像は、手動で削除する必要がありません。expiresInMinutesを指定すれば、自動で削除されます。