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文書を個々の単一ページの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つのドキュメントに分割
Icon Quote related to C#で複数ページのPDFを単一ページのドキュメントに分割する

私のお気に入りのこの種のライブラリはIronPDFです。PDFファイルの迅速で効率的な操作が可能です。また、PDF/A形式へのエクスポートやPDF文書へのデジタル署名といった多くの貴重な機能も備えています。

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

Milan Jovanovic

Microsoft MVP

ケーススタディを見る
Icon Quote related to C#で複数ページのPDFを単一ページのドキュメントに分割する

IronOCRのおかげで私たちは年間$40,000を手作業の処理から節約し、生産性を向上させ、高影響のタスクにリソースを充てることができます。非常にお勧めします。

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

Brent Matzelle

最高技術責任者, OPYN

ケーススタディを見る
Icon Quote related to C#で複数ページのPDFを単一ページのドキュメントに分割する

IronSuiteは私たちの業務において重要な役割を果たしています。これらは、フロアプランの作成や在庫管理の改善を含め、ビジネス全体の効率を向上させるツールです。

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

David Jones

リードソフトウェアエンジニア、Agorus Build

ケーススタディを見る

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

PDF分割にCopyPage メソッドを使用する理由は?

CopyPage IronPDFを手に入れた今、複数ページの文書を単ページの文書ファイルに分割することができます。 複数ページのPDFを分割するというアイデアは、CopyPage または CopyPages メソッドを使用して単一または複数のページをコピーすることを含みます。 これらのメソッドは、指定されたページのみを含む新しいPdfDocument インスタンスを作成し、元の文書のすべてのフォーマット、注釈、インタラクティブ要素を保持します。

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

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

CopyPages

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

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;
        }
    }
}
Imports IronPdf
Imports System
Imports System.IO

Public Class PdfSplitter
    Public Shared Sub SplitPdfWithValidation(inputPath As String, outputDirectory As String)
        Try
            ' Validate input file exists
            If Not File.Exists(inputPath) Then
                Throw New FileNotFoundException("Input PDF file not found.", inputPath)
            End If

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

            ' Load the PDF document
            Dim pdf As PdfDocument = PdfDocument.FromFile(inputPath)

            ' Get the file name without extension for naming split files
            Dim baseFileName As String = Path.GetFileNameWithoutExtension(inputPath)

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

            For idx As Integer = 0 To pdf.PageCount - 1
                ' Copy individual page
                Dim singlePagePdf As PdfDocument = pdf.CopyPage(idx)

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

                ' Save the single page PDF
                singlePagePdf.SaveAs(outputPath)

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

            Console.WriteLine("PDF splitting completed successfully!")
        Catch ex As Exception
            Console.WriteLine($"Error splitting PDF: {ex.Message}")
            Throw
        End Try
    End Sub
End Class
$vbLabelText   $csharpLabel

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

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

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

CopyPagesCopyPage の代わりに使用するのはいつですか?

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");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Public Class MultiPageExtraction
    Public Shared Sub ExtractPageRanges(inputPath As String)
        Dim pdf As PdfDocument = PdfDocument.FromFile(inputPath)

        ' Extract pages 1-5 (0-indexed, so pages 0-4)
        Dim firstChapter As New List(Of Integer) From {0, 1, 2, 3, 4}
        Dim chapterOne As PdfDocument = pdf.CopyPages(firstChapter)
        chapterOne.SaveAs("Chapter_1.pdf")

        ' Extract every other page (odd pages)
        Dim oddPages As New List(Of Integer)()
        For i As Integer = 0 To pdf.PageCount - 1 Step 2
            oddPages.Add(i)
        Next
        Dim oddPagesDoc As PdfDocument = pdf.CopyPages(oddPages)
        oddPagesDoc.SaveAs("Odd_Pages.pdf")

        ' Extract specific non-consecutive pages
        Dim selectedPages As New List(Of Integer) From {0, 4, 9, 14} ' Pages 1, 5, 10, 15
        Dim customSelection As PdfDocument = pdf.CopyPages(selectedPages)
        customSelection.SaveAs("Selected_Pages.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

CopyPages メソッドはカスタムコンピレーションの作成、特定セクションの抽出、または文書内容の再整理に理想的です。 複数のページが必要な場合にCopyPage を複数回呼び出すよりも効率的で、操作を一度の呼び出しで実行します。 包括的な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
テクニカルライター

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

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

準備はできましたか?
Nuget ダウンロード 19,936,792 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

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

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