2つのPDFを重ねて各ページの合成内容を説明
「2つのPDFを重ねる」は、完成文書を作成または確認する前に、ページごとの合成内容を説明する機能です。ベースPDFの各ページと、その上に重ねるPDFの各ページについて、順番どおりに説明をご入力ください。対応関係とレイヤー順を保ち、合成された各ページの簡潔な説明を返します。スタンプのテンプレート、レターヘッド、承認印、繰り返し使う装飾などの確認に適しています。ページ数が異なる場合は、対応するページを一意に決められないためエラーになります。
無料で実行
両方のPDFをページ順に説明します
抽出したテキストまたは簡潔な見た目の説明を、PDFの1ページにつき1つの文字列として2つの配列にご用意ください。pages_baseは下に置く文書を、pages_overlayは上に重ねる文書を表します。それぞれ元のページ順を維持してください。ベースの1番目はオーバーレイの1番目、2番目は2番目というように対応します。説明には、本文、ロゴ、スタンプ、枠線、フォーム欄など、確認に必要な要素を記載できます。実際に空白のページがある場合は空文字列を使用し、その項目を削除しないでください。削除すると、それ以降の対応がずれてしまいます。この機能は、予定されている重なり方や抽出済みの内容を説明するもので、PDFのバイト列自体は変更しません。そのため、別のシステムが内容を抽出済みの場合やテンプレート設計が既知の場合に、ワークフロー確認、監査記録、読みやすいプレビューとしてご利用いただけます。両方の項目は空でない配列である必要があり、すべての要素は文字列でなければなりません。また、意図せず過大な処理にならないよう入力数には上限があります。
重ね合わせの結果を確認します
レスポンスでは各ページ番号について、下側のベースレイヤーと上側のオーバーレイレイヤーを明示します。この順序は重要です。上側PDFのスタンプ、レターヘッド、注記などは、概念上は下の文書より後に描画されるため、実際にレンダリングしたファイルでは一部を覆う場合があります。ただし、文章による説明には座標、色、透明度、フォント、オブジェクトの正確な境界が含まれません。そのため、本機能はピクセル単位の衝突を検出するものではなく、説明されたどの内容が合成ページを構成するかを決定論的に示します。空白ページは個別に扱います。上側が空白ならベースは遮られず、ベースが空白なら上側だけが説明対象となり、両方が空白ならその状態を明記します。抽出ツールからコピーした説明を読みやすく安定させるため、空白文字は正規化されます。同じ入力からは常に同じ順序と文面が生成されるので、自動テストや承認記録にも安心してお使いいただけます。
制作前にページ数の不一致を検出します
ページの重ね合わせが成立するには、各ベースページに対応する上側ページがちょうど1つ必要です。本機能は説明を生成する前に2つの配列の長さを比較し、異なる場合は無効な入力としてエラーを返します。この厳密な動作により、2ページのスタンプ用テンプレートを3ページの契約書に適用してしまう場合や、一方のファイルだけに表紙を追加した場合など、文書制作で起こりやすい問題を検出できます。元の文書を修正するか、意図的に空白ページの説明を追加して構造を合わせてから、もう一度実行してください。レスポンスには、確認済みのページ数、下から上への全体的な順序、各組み合わせの番号付きレコードが含まれます。作業指示書との照合やレビュー画面への取り込みも容易です。APIによる自動処理は1リクエストあたり$0.002です。処理はローカルかつ決定論的で、ネットワークやモデルを使用しないため、機密性の高いページ説明が外部の解析事業者へ送信されることはなく、同じ入力に対する文面も変化しません。
活用例
承認印をご確認いただけます
契約書の各ページが、予定された承認印または確認印の説明と正しく対応しているか確認できます。
レターヘッドを点検できます
ページごとのレターヘッド、フッター、枠線が既存内容の上にどのように重なるか説明します。
文書の組み立てを検証できます
後続のレンダラーが本番PDFを結合する前に、テンプレートページの不足や余分なページを検出します。
よくある質問
新しいPDFを作成する機能ですか?
いいえ。ページごとの重なりを構造化して説明する機能であり、PDFのバイト列を変更したりレンダリングしたりはしません。
どちらのPDFが上になりますか?
pages_overlayが上側のレイヤーで、pages_baseが下側のレイヤーです。
ページ数が異なる場合はどうなりますか?
両方のページ数を示す無効入力エラーとなり、リクエストは失敗します。
空白ページはどのように表しますか?
配列内の位置を維持して空文字列を使用すると、後続ページの対応関係が保たれます。
スタンプが特定の単語を隠すか検出できますか?
いいえ。文章の説明には位置や透明度がないため、ピクセル単位の隠れ方ではなく、各レイヤーの内容を説明します。
料金はいくらですか?
APIリクエストごとの料金は$0.002です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/pdf/overlay-two-files \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages_base":["Invoice 1042: customer, line items, and total due","Payment terms and bank details"],"pages_overlay":["APPROVED stamp centered across the page","APPROVED stamp centered across the page"]}'const res = await fetch("https://api.kit.forhosting.com/pdf/overlay-two-files", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages_base": [
"Invoice 1042: customer, line items, and total due",
"Payment terms and bank details"
],
"pages_overlay": [
"APPROVED stamp centered across the page",
"APPROVED stamp centered across the page"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/overlay-two-files",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages_base": [
"Invoice 1042: customer, line items, and total due",
"Payment terms and bank details"
],
"pages_overlay": [
"APPROVED stamp centered across the page",
"APPROVED stamp centered across the page"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/overlay-two-files", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages_base":["Invoice 1042: customer, line items, and total due","Payment terms and bank details"],"pages_overlay":["APPROVED stamp centered across the page","APPROVED stamp centered across the page"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages_base":["Invoice 1042: customer, line items, and total due","Payment terms and bank details"],"pages_overlay":["APPROVED stamp centered across the page","APPROVED stamp centered across the page"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/overlay-two-files", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"pages_base": [
"Invoice 1042: customer, line items, and total due",
"Payment terms and bank details"
],
"pages_overlay": [
"APPROVED stamp centered across the page",
"APPROVED stamp centered across the page"
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.overlay_two_files",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 25 |
max_pages | 200 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |