C#でIronPDFを使用して複数ページのPDFを分割する方法|IronPDF

C#で複数ページのPDFを単一ページのドキュメントに分割する

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF、CopyPage メソッドを使用して、複数ページの PDF ドキュメントを個別の 1 ページの PDF に分割できます。 このアプローチにより、開発者は各ページを繰り返し読み、わずか数行のコードで別々のファイルとして保存することができます。 スキャンした文書やレポート、複数ページのPDFを扱う場合でも、IronPdfは文書管理と処理タスクのための効率的なソリューションを提供します。

PDFの分割機能は、個々のページを異なる受信者に配布したり、ページを個別に処理したり、単一ページの入力を必要とする文書管理システムと統合したりする必要がある場合に特に便利です。 IronPDFの堅牢なChromeレンダリングエンジンは、分割されたページが元のフォーマット、画像、テキストの品質を維持することを保証します。

クイックスタート: 複数ページの PDF を単一ページに分割する

IronPdfを使って、複数ページのPDFを単一ページのドキュメントに分割することができます。 CopyPage メソッドを利用すると、PDF の各ページを効率的に反復処理し、個別のファイルとして保存できます。 この合理化されたプロセスは、PDF文書を管理するための高速で信頼性の高いソリューションを求める開発者に最適です。 まず、NuGet経由でIronPDFをインストールしていることを確認してください。

  1. IronPDF をNuGetパッケージマネージャでインストール

    PM > Install-Package IronPdf
  2. このコード スニペットをコピーして実行します。

    var pdf = new IronPdf.PdfDocument("multipage.pdf");
    for (int i = 0; i < pdf.PageCount; i++) {
      var singlePagePdf = pdf.CopyPage(i);
      singlePagePdf.SaveAs($"page_{i + 1}.pdf");
    }
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル

    arrow pointer

PDFドキュメントの分割

  • IronPDFライブラリをインストールする
  • 複数ページのPDFを1つのドキュメントに分割

複数ページのPDFを分割するにはどうすればよいですか?

なぜPDFの分割にCopyPageメソッドを使うのですか

IronPdfがあれば、複数ページのドキュメントを単一ページのドキュメントファイルに分割することができます。 複数ページの PDF を分割するには、CopyPage または CopyPages メソッドを使用して 1 ページまたは複数のページをコピーします。 これらのメソッドは、指定されたページのみを含む新しい PdfDocument インスタンスを作成し、元のドキュメントのすべての書式、注釈、およびインタラクティブな要素を保持します。

CopyPage メソッドは、 IronPDFにおける PDF 分割操作の基礎です。 複雑な操作が必要になったり、データ損失のリスクがある他のアプローチとは異なり、CopyPage は、すべての視覚要素、テキスト書式、および埋め込みリソースを維持しながら、指定されたページの正確な複製を作成します。 このため、法的文書、請求書、アーカイブ記録など、文書の完全性が重要なシナリオに最適です。

各ページを分割する手順は何ですか?

:path=/static-assets/pdf/content-code-examples/how-to/split-multipage-pdf-split-pdf.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("multiPage.pdf");

for (int idx = 0; idx < pdf.PageCount; idx++)
{
    // Create new document for each page
    PdfDocument outputDocument = pdf.CopyPage(idx);

    string fileName = @$"multiPage - Page {idx + 1}_tempfile.pdf";

    // Export to new file
    outputDocument.SaveAs(fileName);
}
$vbLabelText   $csharpLabel

より高度なシナリオの場合、エラー処理を実装し、出力形式をカスタマイズすることもできます。 以下は、バリデーションとカスタムネーミングを含む包括的な例です:

using IronPdf;
using System;
using System.IO;

public class PdfSplitter
{
    public static void SplitPdfWithValidation(string inputPath, string outputDirectory)
    {
        try
        {
            // Validate input file exists
            if (!File.Exists(inputPath))
            {
                throw new FileNotFoundException("Input PDF file not found.", inputPath);
            }

            // Create output directory if it doesn't exist
            Directory.CreateDirectory(outputDirectory);

            // Load the PDF document
            PdfDocument pdf = PdfDocument.FromFile(inputPath);

            // Get the file name without extension for naming split files
            string baseFileName = Path.GetFileNameWithoutExtension(inputPath);

            Console.WriteLine($"Splitting {pdf.PageCount} pages from {baseFileName}...");

            for (int idx = 0; idx < pdf.PageCount; idx++)
            {
                // Copy individual page
                PdfDocument singlePagePdf = pdf.CopyPage(idx);

                // Create descriptive filename with zero-padding for proper sorting
                string pageNumber = (idx + 1).ToString().PadLeft(3, '0');
                string outputPath = Path.Combine(outputDirectory, $"{baseFileName}_Page_{pageNumber}.pdf");

                // Save the single page PDF
                singlePagePdf.SaveAs(outputPath);

                Console.WriteLine($"Created: {outputPath}");
            }

            Console.WriteLine("PDF splitting completed successfully!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error splitting PDF: {ex.Message}");
            throw;
        }
    }
}
using IronPdf;
using System;
using System.IO;

public class PdfSplitter
{
    public static void SplitPdfWithValidation(string inputPath, string outputDirectory)
    {
        try
        {
            // Validate input file exists
            if (!File.Exists(inputPath))
            {
                throw new FileNotFoundException("Input PDF file not found.", inputPath);
            }

            // Create output directory if it doesn't exist
            Directory.CreateDirectory(outputDirectory);

            // Load the PDF document
            PdfDocument pdf = PdfDocument.FromFile(inputPath);

            // Get the file name without extension for naming split files
            string baseFileName = Path.GetFileNameWithoutExtension(inputPath);

            Console.WriteLine($"Splitting {pdf.PageCount} pages from {baseFileName}...");

            for (int idx = 0; idx < pdf.PageCount; idx++)
            {
                // Copy individual page
                PdfDocument singlePagePdf = pdf.CopyPage(idx);

                // Create descriptive filename with zero-padding for proper sorting
                string pageNumber = (idx + 1).ToString().PadLeft(3, '0');
                string outputPath = Path.Combine(outputDirectory, $"{baseFileName}_Page_{pageNumber}.pdf");

                // Save the single page PDF
                singlePagePdf.SaveAs(outputPath);

                Console.WriteLine($"Created: {outputPath}");
            }

            Console.WriteLine("PDF splitting completed successfully!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error splitting PDF: {ex.Message}");
            throw;
        }
    }
}
$vbLabelText   $csharpLabel

ページ反復はどのように機能しますか?

上記のコードを見ると、for ループを使用して現在の PDF ドキュメントのページを反復処理し、次に CopyPage メソッドを使用して各ページを新しいPdfDocumentオブジェクトにコピーしていることがわかります。 最終的に、各ページは順番に名前を付けられた新しいドキュメントとしてエクスポートされます。 IronPDFは複雑なPDF構造の操作をすべて内部で処理するため、反復プロセスは簡単で効率的です。

PageCount プロパティはドキュメント内のページの合計数を提供するため、インデックス範囲外の例外が発生するリスクなしに安全に反復処理を行うことができます。 各反復は完全に独立したPDFドキュメントを作成します。つまり、元のドキュメントや他の分割ページに影響を与えることなく、各ページを個別に処理、修正、配布することができます。 このアプローチは、特定のページを抜き出したり、ページを並行して処理する必要があるような大規模なドキュメントを扱う場合に特に有益です。

CopyPageの代わりにCopyPagesを使うべきときは?

CopyPage は単一ページの抽出に最適ですが、 IronPDF、連続した複数のページまたは連続していない複数のページを抽出する必要があるシナリオ向けに CopyPages メソッドも提供しています。 これは、個々のページではなく、特定のページ範囲でPDF文書を作成したい場合に特に役立ちます:

using IronPdf;
using System.Collections.Generic;

public class MultiPageExtraction
{
    public static void ExtractPageRanges(string inputPath)
    {
        PdfDocument pdf = PdfDocument.FromFile(inputPath);

        // Extract pages 1-5 (0-indexed, so pages 0-4)
        List<int> firstChapter = new List<int> { 0, 1, 2, 3, 4 };
        PdfDocument chapterOne = pdf.CopyPages(firstChapter);
        chapterOne.SaveAs("Chapter_1.pdf");

        // Extract every other page (odd pages)
        List<int> oddPages = new List<int>();
        for (int i = 0; i < pdf.PageCount; i += 2)
        {
            oddPages.Add(i);
        }
        PdfDocument oddPagesDoc = pdf.CopyPages(oddPages);
        oddPagesDoc.SaveAs("Odd_Pages.pdf");

        // Extract specific non-consecutive pages
        List<int> selectedPages = new List<int> { 0, 4, 9, 14 }; // Pages 1, 5, 10, 15
        PdfDocument customSelection = pdf.CopyPages(selectedPages);
        customSelection.SaveAs("Selected_Pages.pdf");
    }
}
using IronPdf;
using System.Collections.Generic;

public class MultiPageExtraction
{
    public static void ExtractPageRanges(string inputPath)
    {
        PdfDocument pdf = PdfDocument.FromFile(inputPath);

        // Extract pages 1-5 (0-indexed, so pages 0-4)
        List<int> firstChapter = new List<int> { 0, 1, 2, 3, 4 };
        PdfDocument chapterOne = pdf.CopyPages(firstChapter);
        chapterOne.SaveAs("Chapter_1.pdf");

        // Extract every other page (odd pages)
        List<int> oddPages = new List<int>();
        for (int i = 0; i < pdf.PageCount; i += 2)
        {
            oddPages.Add(i);
        }
        PdfDocument oddPagesDoc = pdf.CopyPages(oddPages);
        oddPagesDoc.SaveAs("Odd_Pages.pdf");

        // Extract specific non-consecutive pages
        List<int> selectedPages = new List<int> { 0, 4, 9, 14 }; // Pages 1, 5, 10, 15
        PdfDocument customSelection = pdf.CopyPages(selectedPages);
        customSelection.SaveAs("Selected_Pages.pdf");
    }
}
$vbLabelText   $csharpLabel

CopyPages メソッドは、カスタムコンパイルの作成、特定のセクションの抽出、またはドキュメントコンテンツの再編成に最適です。 また、複数のページが必要な場合、CopyPage を複数回呼び出すよりも、1 回の呼び出しで操作が実行されるため、より効率的です。 包括的なPDF操作機能のために、分割とマージ操作を組み合わせて、洗練されたドキュメントワークフローを作成することができます。

次に何ができるのかを見てみましょうか? こちらのチュートリアルページをご覧ください:PDFを整理する. また、分割した PDF にページ番号を追加する方法や、文書管理ワークフローを強化するための PDF メタデータの管理についても説明します。 より高度なPDF操作テクニックについては、包括的なAPIリファレンスをご覧ください。

よくある質問

C#で複数ページのPDFを個々の単一ページのPDFに分割するには?

IronPDFのCopyPageメソッドを使って複数ページのPDFを分割することができます。PDFドキュメントを読み込み、forループを使って各ページを繰り返し処理し、各ページを別々のファイルとして保存するだけです。IronPDFは数行のコードでこのプロセスを簡単にし、オリジナルのフォーマットと品質を維持します。

PDFから個々のページを抽出するには、どのような方法を使用すればよいですか?

IronPDFはPDFドキュメントから個々のページを抽出するCopyPageメソッドを提供します。このメソッドは、指定されたページの完全な複製を新しいPdfDocumentインスタンスとして作成し、元のドキュメントからのすべての書式、注釈、インタラクティブ要素を保持します。

PDFを分割しても、元の書式や品質は維持されますか?

IronPDFのCopyPageメソッドを使ってPDFを分割した場合、すべてのビジュアル要素、テキストフォーマット、埋め込みリソース、インタラクティブ要素は保持されます。IronPDFのChromeレンダリングエンジンは分割されたページが元の書式、画像、テキストの品質を維持することを保証します。

一度に1ページではなく、複数のページを一度に分割することはできますか?

はい、IronPDFは単一ページ用のCopyPageと複数ページ用のCopyPagesの両方を提供しています。CopyPagesメソッドにより、一度に複数のページを新しいPdfDocumentインスタンスに抽出することができます。

PDF文書を分割する一般的な使用例とは?

IronPDFの分割機能は、個々のページを異なる受信者に配布したり、ページを別々に処理したり、単一ページの入力を必要とする文書管理システムと統合したり、文書の整合性が重要な法的文書や請求書、アーカイブされた記録を扱ったりするのに理想的です。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 17,803,474 | バージョン: 2026.3 リリース
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronPdf
サンプルを実行するHTML が PDF に変換されるのを確認します。