API 仕様
pdfg の API は、HTML コンテンツと PDF 生成オプションを含む JSON ペイロードを受け付けます。
エンドポイント
POST https://api.pdfg.net/v1
ヘッダー
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
リクエスト ボディ
リクエストボディは以下の 2 つのパラメータを持つ JSON オブジェクトです:
- html(必須): PDF 化したい HTML コンテンツを文字列で指定します。
- pdfOptions(オプション): PDF 生成時の様々な設定を指定できます。
- preview(オプション): true を指定すると、PDF にウォーターマークが追加され、API 使用量にカウントされません。開発やテスト時の利用を想定しています。
PDF オプション
pdfOptionsとして指定可能なパラメータは以下の通りです:
| パラメータ名 | 型 | 説明 | デフォルト値 | 
|---|---|---|---|
| displayHeaderFooter | boolean | ヘッダーとフッターを表示するかどうか | false | 
| footerTemplate | string | フッターの HTML テンプレート。 headerTemplateと同じ制約と特殊クラスのサポートがあります | "" | 
| format | string | 用紙サイズ。 Letter、Legal、Tabloid、Ledger、A0、A1、A2、A3、A4、A5、A6のいずれか。指定された場合、widthとheightより優先されます | "letter" | 
| headerTemplate | string | ヘッダーの HTML テンプレート。以下の特殊クラスを使用可能: - date: 印刷日- title: ドキュメントタイトル- url: ドキュメントの場所- pageNumber: 現在のページ番号- totalPages: 総ページ数 | "" | 
| height | string | number | PDF の高さ(ピクセル単位の数値、または単位付きの文字列) | - | 
| landscape | boolean | 横向きで出力するかどうか | false | 
| margin | object | マージン設定( top、right、bottom、leftを指定可能) | undefined(マージンなし) | 
| omitBackground | boolean | デフォルトの白背景を非表示にし、透過 PDF の生成を許可するかどうか | false | 
| pageRanges | string | 出力するページ範囲(例: '1-5, 8, 11-13') | ""(すべてのページ) | 
| preferCSSPageSize | boolean | CSS の@page サイズ宣言を、width/height/format オプションよりも優先するかどうか | false(用紙サイズに合わせて拡大縮小) | 
| printBackground | boolean | 背景のグラフィックスを印刷するかどうか | false | 
| scale | number | Web ページのレンダリングスケール。0.1 から 2.0 の間で指定 | 1 | 
| width | string | number | PDF の幅(ピクセル単位の数値、または単位付きの文字列) | - | 
リクエスト例
以下は、すべての PDF オプションを指定した場合の cURL リクエストの例です:
curl --location 'https://api.pdfg.net/v1' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
  "html": "<h1>Hello World</h1>",
  "pdfOptions": {
    "displayHeaderFooter": true,
    "footerTemplate": "<div style=\"text-align: center; width: 100%; font-size: 10px;\"><span class=\"pageNumber\"></span> / <span class=\"totalPages\"></span></div>",
    "format": "A4",
    "headerTemplate": "<div style=\"text-align: center; width: 100%; font-size: 10px;\">サンプルヘッダー</div>",
    "height": "297mm",
    "landscape": false,
    "margin": {
      "top": "20mm",
      "right": "20mm",
      "bottom": "20mm",
      "left": "20mm"
    },
    "omitBackground": false,
    "pageRanges": "1-5",
    "preferCSSPageSize": false,
    "printBackground": true,
    "scale": 1,
    "width": "210mm"
  }
}' \
--output sample.pdf
レスポンス
生成された PDF のバイナリデータが返されます。