Bates番号を適用
Bates番号は、文書一式の各ページに安定した連続識別子を割り当てる仕組みです。この計算ツールでは、PDFへ実際に印字する前に完全なラベル計画を作成できます。ページ数、必要な接頭辞、最初のページに付ける番号、桁幅をご指定ください。各ページの物理的な位置、数値、完成したラベルを対応付けて返します。また、連番の末尾を事前に検査するため、桁幅不足によってファイルの途中から不揃いな識別子が生じることを防げます。
無料で実行
PDFを変更する前に番号計画を決めます
信頼できるBates処理は、ページへ直ちに文字を描くのではなく、番号計画を作るところから始まります。まず、信頼できるPDFリーダーや文書処理工程でページ数を取得してください。次に、ファイル名に頼らず案件、提出資料、依頼者、別紙、バッチを識別できる接頭辞を選びます。開始番号は物理的な1ページ目に割り当てる数値であり、桁幅は接頭辞の後に表示する数字の位置数です。たとえば、17から始めて5桁にすると00017になります。本機能は連番全体を計算し、1から始まるページ位置、書式化前の数値、完成ラベルを各ページについて返します。PDFデータ自体を受信も変更もしないため、印字前の承認、監査記録への保存、別のスタンプ処理への引き渡しに利用できます。複数のツールでページごとの識別子を厳密に一致させたい場合にも役立ちます。
文書途中で桁幅が変わる事態を防ぎます
ゼロ埋めは見た目だけの設定ではありません。固定幅の番号は文字列として正しく並び、きれいに整列し、異なる提出資料の間でも比較しやすくなります。確認すべきなのは開始番号が収まるかではなく、全ページを数えた後の最終番号が収まるかです。990から始まる20ページのPDFは1009で終わるため、最初の990が収まっても3桁では無効です。本計算ではラベル生成前に最終値を求め、その桁数が指定幅を超える場合は入力エラーを返します。後半だけを暗黙に拡張して、不揃いな連番を作ることはありません。後続ファイルでも同じ連番を使う場合は、将来の増加を見込んだ幅をお選びください。返された最終番号に1を加えた値から次のバッチを開始し、接頭辞と桁幅を維持すると、重複や意図しない欠番を避けられます。
法務・記録業務で安全に活用します
結果は決定的であり、同じ入力からは常に同じページ対応表が生成されます。ネットワーク参照、現在時刻、乱数には依存しません。そのため、証拠資料の準備、情報公開、契約別紙、内部調査、記録保管の索引作成に適しています。管理履歴が重要な場合は、生成した対応表を原本と印字済みPDFそれぞれのチェックサムとともに保存してください。印字前には、表紙、仕切り、付録、意図的な空白ページを含め、処理ツールが扱う全ページが入力数に含まれることをご確認ください。既存の提出規則がある場合は、接頭辞の表記と句読点、開始値、固定幅もご確認ください。本機能はラベル計算のみを行い、PDFの編集、内容検査、既存番号の検出、印字位置の決定は行いません。連番を独立して検証した後、専用ツールでフォント、色、余白を明示的に設定できます。
活用例
法務資料の提出計画
バッチへ恒久的なBates印を描画する前に、ページとラベルの正確な対応表を作成できます。
複数PDF間で連番を継続
前のバッチの最終番号を基準に次の文書を開始し、識別子の重複や欠番を防げます。
自動印字処理の検証
別ツールでPDFを変更した後、抽出または目視確認した印字と計画済みラベルを比較できます。
よくある質問
この機能はPDFを変更しますか?
いいえ。ページ数と番号設定を受け取り、各ページのラベルを返します。実際の適用には別のPDFツールをご利用ください。
桁幅が不足するとどうなりますか?
最終番号の桁数が指定幅を超える場合は入力エラーを返します。ラベルの幅を暗黙に広げることはありません。
接頭辞を空にできますか?
はい。空文字列を指定すると、ゼロ埋めした連番だけを含むラベルが生成されます。
番号をゼロから開始できますか?
はい。連番全体が安全な整数範囲に収まる限り、ゼロまたは任意の非負の安全な整数から開始できます。
APIリクエストの料金はいくらですか?
1回のリクエストは$0.002です。ブラウザ版ではPDF内容を送信せず、同じ決定的な計算を実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/pdf/bates-numbering \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}'const res = await fetch("https://api.kit.forhosting.com/pdf/bates-numbering", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/bates-numbering",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/bates-numbering", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/bates-numbering", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"page_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.bates_numbering",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_pages | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |