PDF Blocks
料金サポート
無料で始める
ページへ移動

レスポンスフォーマットとコンテンツネゴシエーション

アクションから返ってくるもの、そして `Accept` ヘッダーが PDF、ZIP、JSON エンベロープ、multipart/mixed のどれを選ぶかについて説明します。

ほとんどのアクションは単一の application/pdf ドキュメントを返します。4つの分割アクションは一度に複数のドキュメントを返し、その梱包方法を Accept リクエストヘッダーで選びます。このページは、そのコンテンツネゴシエーションのリファレンスです。梱包オプション、JSON エンベロープのスキーマ、そして Accept ヘッダーが何にも一致しない場合に何が起きるかを説明します。

単一ドキュメントのレスポンス

分割ではないすべてのアクションは 200 OK で応答し、処理済みの PDF を生の本文として返します。

HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 48213

ネゴシエーションの余地はありません。各アクションページの例のように、本文をファイルへストリーミングしてください。

複数ドキュメントのレスポンス

分割系のアクションは、1回の呼び出しから複数のドキュメントを返します。ページ数で分割する指定したページで分割するファイルサイズで分割するページグループで分割する です。出力ドキュメントは、順番に 00001.pdf00002.pdf のように名付けられます。梱包方法は Accept リクエストヘッダーで選びます。

Accept ヘッダー レスポンス
(送信なし) application/zip(デフォルト)
application/zip 出力 PDF の ZIP アーカイブ
application/json base64 エンコードされたドキュメントの JSON エンベロープ
multipart/mixed ドキュメントごとに1パート
それ以外 406 Not Acceptable

application/zip:デフォルト

Accept ヘッダーを送らない場合(または Accept: application/zip を送った場合)、レスポンスは 00001.pdf00002.pdf のように名付けられたエントリを持つ ZIP アーカイブになります。

cURLbash
curl https://api.pdfblocks.com/v1/split_by_page_count \
  -H 'X-API-Key: your_api_key' \
  -F file=@input.pdf \
  -F page_count=10 \
  -o parts.zip

parts.zip を展開すると、個々のドキュメントが得られます。

application/json:base64 エンベロープ

Accept: application/json をリクエストすると、すべてのドキュメントが1つの JSON レスポンスにインラインで含まれます。パートをメモリに保持したい場合や、ファイルシステムに触れずに転送したい場合に便利です。

cURLbash
curl https://api.pdfblocks.com/v1/split_by_page_count \
  -H 'X-API-Key: your_api_key' \
  -H 'Accept: application/json' \
  -F file=@input.pdf \
  -F page_count=10 \
  -o parts.json

本文は documents 配列で、各エントリが名前と base64 エンコードされたバイト列を持ちます。

{
  "documents": [
    {
      "name": "00001.pdf",
      "content": "JVBERi0xLjcKJeLjz9MK... (base64)",
      "content_type": "application/pdf"
    },
    {
      "name": "00002.pdf",
      "content": "JVBERi0xLjcKJeLjz9MK... (base64)",
      "content_type": "application/pdf"
    }
  ]
}
documentsarrayrequired

出力 PDF ドキュメント(順序どおり)。

documents[].namestringrequired

ドキュメント名:00001.pdf00002.pdf など。

documents[].contentstring (base64)required

base64 エンコードされた PDF ドキュメント。デコードすると生の PDF バイト列が復元されます。

documents[].content_typestringrequired

ドキュメントのメディアタイプ:application/pdf

multipart/mixed:ドキュメントごとに1パート

Accept: multipart/mixed をリクエストすると、出力 PDF ごとに1パートを持つ multipart 本文として、ドキュメントが順番にストリーミングされます。各パートの Content-Typeapplication/pdf で、Content-Disposition には 00001.pdf00002.pdf のように名前が付けられます。

cURLbash
curl https://api.pdfblocks.com/v1/split_by_page_count \
  -H 'X-API-Key: your_api_key' \
  -H 'Accept: multipart/mixed' \
  -F file=@input.pdf \
  -F page_count=10 \
  -o parts.multipart

一致しない Accept406 を返す

上記の3つの形式のどれにも一致しない Accept ヘッダーを送った場合(例えば分割アクションに対して Accept: application/pdf を送った場合)、API は 406 Not Acceptableapplication/problem+json 本文で応答します。Accept を省略してデフォルトの ZIP を使うか、サポートされているメディアタイプのいずれかをリクエストしてください。problem details の形については エラー を参照してください。

分割アクションを呼び出し、各フォーマット(ZIP の展開、JSON エンベロープのデコード、multipart パートの読み取り)を処理するエンドツーエンドのコードについては、PDF を分割して出力を扱う ガイドを参照してください。