PDFをNページごとに連続ファイルへ分割
長いPDFを予測しやすい小さなファイルの列にしたい場合は、Nページごとに分割できます。PDFと、各分割ファイルに含める最大ページ数を正の整数で指定してください。元のページ順を保ったまま、直前のファイルの続きから次のファイルを作成し、余ったページは短い最終ファイルに収めます。各結果には元PDFでの正確な開始位置と終了位置も表示されるため、自動処理の中で確認、命名、振り分け、検証を行えます。
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
ファイルごとの適切なページ数を選びます
Nは、各出力PDFに含める連続した元ページの最大数です。たとえば11ページの文書をNが4の設定で分割すると、1–4、5–8、9–11ページのファイルが作成されます。総ページ数は4で割り切れないため最後だけ短くなりますが、空白ページを追加したり元ページを省いたりすることはありません。受け取り側の仕組みに合わせてNを選んでください。文書ポータルに実用上の制限がある場合、スキャン結果で2ページごとに1枚の帳票が並ぶ場合、または10ページ単位で査読を割り当てる場合などが考えられます。Nには1以上の整数が必要です。1を指定すると各ページが個別のPDFになり、総ページ数以上を指定すると出力は1ファイルだけになります。この設定が制御するのはページ数であり、バイト単位の容量ではありません。同じページ数でも、写真などの内容によって容量は大きく異なる場合があります。
各分割範囲を確認します
生成された各部分にはPDF本体に加え、そのページ数と、元文書における開始位置および終了位置が両端を含む形で示されます。位置は一般的な1始まりで、最初に表示される元ページが1ページ目です。応答全体には、元の総ページ数、採用された分割ページ数、作成ファイル数も含まれます。この情報を使えば、全文書を開き直さずに自動処理で欠落の有無を確認できます。各部分は直前の終了ページの次から始まり、最初は1ページ目、最後は報告された総ページ数で終わる必要があります。順序は保たれ、範囲が重なることもありません。元の入力値は変更されません。文書IDと範囲を組み合わせたファイル名、たとえばreport-pages-001-010.pdfを使うと便利です。API応答の外でも内容を識別しやすくなり、アップロード、添付、保存、担当者への配布時の誤りを減らせます。
固定ページ分割を安全に運用します
固定ページ数での分割は、ページ位置によって目的のまとまりが決まる場合に適しています。スキャン文書を均等な確認用パケットにする、教材を読書区分に分ける、長い付録をアップロードしやすい単位にする、といった用途があります。一方、内容に基づく文書判定の代わりにはなりません。請求書ごとに長さが異なる場合や、区切り紙が記録の境界を示す場合は、各記録がNページだと仮定せず、先に境界を特定してください。入力の検証も重要です。不正なPDF、未対応のページ構造、1未満のNは入力エラーとなり、不完全なファイル群は返しません。API処理では、そのエラーを受けた元文書を隔離し、調査用の識別子を保持してください。成功時も、配布前に報告された総ページ数と期待値を比較してください。APIの各リクエストは$0.002です。決定的な処理であり、ネットワーク、推論、乱数、現在時刻には依存しません。
活用例
確認用パケットを準備
長い案件資料を同じページ数のパケットに変換し、元の範囲を明確にしたまま順番に割り当てられます。
スキャン帳票を分離
各帳票が常に同じページ数で構成される場合に、まとめてスキャンしたPDFを帳票単位に分けられます。
アップロード処理に適合
長いマニュアルを扱いやすい一定のグループに分け、小さな文書を処理しやすいシステムへ渡せます。
よくある質問
総ページ数がNで割り切れない場合はどうなりますか?
残りのページは最後のPDFに入ります。Nページ未満になりますが、空白の追加や元ページの欠落はありません。
Nに0や負の数を指定できますか?
いいえ。Nは1以上の整数である必要があり、それ未満の値は入力エラーになります。
元のページ順は維持されますか?
はい。各部分は連続して重複せず、元PDFと同じページ順で返されます。
Nはメガバイト単位の容量を制御しますか?
いいえ。Nが制御するのはPDFごとのページ数です。画像、フォント、内容によって容量は変わります。
APIリクエストの料金はいくらですか?
API料金は1リクエストあたり$0.002です。応答には複数の連続したPDFが含まれる場合があります。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/pdf/split-every-n \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf","n":2}'const res = await fetch("https://api.kit.forhosting.com/pdf/split-every-n", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf",
"n": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/split-every-n",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf",
"n": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/split-every-n", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf","n":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf","n":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/split-every-n", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"pdf": "https://ejemplo.com/documento.pdf",
"n": 2
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.split_every_n",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |