PDFファイルを分割するとは、1つのPDFを複数の小さなドキュメントに分けることです。特定のページだけを抽出したり、Nページごとに区切ったり、任意のページ範囲で分割したりできます。契約書の特定のページだけを送りたい、電子書籍から1章だけを取り出したい、スキャンした文書を1ファイルずつに分けたいといった場面でも、オンラインのPDF分割ツールを使えば、ソフトウェアをインストールすることなくすぐに実行できます。
PDFを分割する必要がある場面
- 大きな文書から数ページだけを抽出してメールで共有する
- 複数ページの契約書を署名ページごとに分ける
- スキャンした書籍を章ごとに分割する
- ポートフォリオをプロジェクトごとのファイルに分ける
- 月次明細から請求書を抽出する
- 別のPDFと結合する前に不要なページを削除する
分割方法
方法1: 特定のページを抽出する
新しいPDFファイルとして抽出したいページ番号を指定します。ページ範囲は 1-5, 8, 11-13 の形式で指定します。
Input: 100-page document
Extract: 1-5, 8, 11-13
Output: 8 pages (1,2,3,4,5,8,11,12,13) in a new PDF
方法2: Nページごとに分割する
文書をNページずつのかたまりに分割します。大きなPDFを同じサイズの小さなファイルに分けたいときに便利です。
Input: 50-page document
Split: every 10 pages
Output: 5 files (pages 1-10, 11-20, 21-30, 31-40, 41-50)
方法3: 任意のページ範囲で分割する
出力ファイルごとに、それぞれのページ範囲を定義します。各範囲が個別のPDFになります。
Input: 30-page document
Split ranges: 1-5, 6-15, 16-20, 21-30
Output: 4 files
PDF分割ツールの仕組み
Help2CodeのPDFスプリッターツールは、PDF.jsを使ってすべてブラウザ内で動作します。ファイルが端末の外に出ることはなく、サーバーへのアップロードも不要なので、プライバシーに関する心配もありません。
ステップバイステップの手順
- ブラウザでPDFスプリッターツールを開きます
- アップロードエリアをクリックするか、PDFファイルをドラッグ&ドロップします
- 分割方法を選択します: 特定ページの抽出、Nページごとの分割、任意の範囲指定から選べます
- 出力を設定します: ページ番号、間隔、または範囲を入力します
- 結果をダウンロードします: 分割された各セクションが自動的に生成され、ダウンロードされます
コード例
JavaScript: pdf-libでPDFを分割する
const { PDFDocument } = require('pdf-lib');
async function splitPdf(sourceBytes, pageRanges) {
const sourceDoc = await PDFDocument.load(sourceBytes);
const outputDocs = [];
for (const range of pageRanges) {
const newDoc = await PDFDocument.create();
const [start, end] = range;
const copiedPages = await newDoc.copyPages(
sourceDoc,
Array.from({ length: end - start + 1 }, (_, i) => start + i)
);
copiedPages.forEach(page => newDoc.addPage(page));
outputDocs.push({
pages: `${start + 1}-${end + 1}`,
bytes: await newDoc.save()
});
}
return outputDocs;
}
// 使用例: 1〜3ページ目と5〜7ページ目を抽出(0始まり)
const ranges = [[0, 2], [4, 6]];
splitPdf(pdfBuffer, ranges).then(console.log);
Python: PyMuPDFでページを抽出する
import fitz # PyMuPDF
def extract_pages(input_pdf: str, output_pdf: str, page_numbers: list[int]):
src = fitz.open(input_pdf)
dst = fitz.open()
for num in page_numbers:
dst.insert_pdf(src, from_page=num, to_page=num)
dst.save(output_pdf)
dst.close()
src.close()
extract_pages('input.pdf', 'output.pdf', [0, 1, 4, 5])
# 1, 2, 5, 6ページ目を抽出(0始まり)
PHP: FPDIでPDFを分割する
use setasign\Fpdi\Fpdi;
function splitPdf(string $inputFile, array $pageRanges): array {
$outputFiles = [];
$pdf = new Fpdi();
$pageCount = $pdf->setSourceFile($inputFile);
foreach ($pageRanges as $i => $range) {
$output = new Fpdi();
[$start, $end] = $range;
for ($page = $start; $page <= $end; $page++) {
$templateId = $output->importPage($page);
$size = $output->getTemplateSize($templateId);
$output->addPage($size['orientation'] === 'L' ? 'L' : 'P', [$size['width'], $size['height']]);
$output->useTemplate($templateId);
}
$filename = tempnam(sys_get_temp_dir(), "split_$i") . '.pdf';
$output->Output($filename, 'F');
$outputFiles[] = $filename;
}
return $outputFiles;
}
$ranges = [[1, 3], [5, 7]]; // 1始まりのページ番号
splitPdf('input.pdf', $ranges);
コマンドライン: pdfseparateを使う(Linux)
# 各ページを個別のファイルに分割する
pdfseparate input.pdf output_%d.pdf
# pdfjamを使って範囲ごとに分割する
pdfjam input.pdf 1-5 --outfile part1.pdf
pdfjam input.pdf 6-10 --outfile part2.pdf
PDF分割ツールの比較
| ツール | プラットフォーム | プライバシー | 最大ページ数 | 出力オプション |
|---|---|---|---|---|
| Help2Code PDFスプリッター | ブラウザ | 100%クライアントサイド | ブラウザの制限による | 範囲指定、Nページごと、カスタム |
| Adobe Acrobat | デスクトップ | 完全なプライバシー | 無制限 | サイズ、ページ、ブックマークで分割 |
| pdfseparate | Linux CLI | 完全なプライバシー | 無制限 | 各ページを個別ファイルに |
| PyMuPDF | Python | 完全なプライバシー | 無制限 | プログラムによる完全な制御 |
| オンラインアップロードツール | Web | アップロードが必要 | ツールによって異なる | 範囲指定またはNページごと |
ベストプラクティス
- プライバシーポリシーを確認する — 機密文書にはクライアントサイドで動作するツールを使いましょう
- ページ範囲を検証する — 分割する前にページ番号をダブルチェックしましょう
- 元ファイルのバックアップを取る — 重要な文書の唯一のコピーを分割するのは避けましょう
- 出力ファイルを確認する — 分割後の各ファイルを開き、想定どおりのページが含まれているか確認しましょう
- わかりやすいファイル名を付ける —
output1.pdfではなくcontract-signature-page.pdfのような説明的な名前を使いましょう
関連ツール
分割した後は、ファイルサイズを小さくするためにPDFを圧縮したり、文書からページを削除したり、複数のPDFを結合して元に戻したりする必要があるかもしれません。これらのツールはすべてブラウザ内で動作し、アップロードは不要です。
まとめ
PDFファイルの分割は、あらゆる職種の人が遭遇する一般的な文書作業です。特定のページを抽出したい場合でも、文書を均等な部分に分けたい場合でも、任意のページ範囲を作成したい場合でも、オンラインのPDF分割ツールを使えば、作業をすぐに完了でき、プライバシーも守られます。ブラウザ上で分割するにはPDFスプリッターツールを、文書処理の自動化には上記のプログラミングによる方法をご活用ください。