如何使用 IronPDF 在 C# 中分割多頁 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. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPdf

    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 文件拆分為單一文檔

如何拆分多頁PDF文件?

為什麼要使用 CopyPage 方法進行 PDF 分割?

現在有了IronPDF,您可以將多頁文件拆分成單頁文件檔案。 拆分多頁 PDF 的想法是使用 CopyPageCopyPages 方法複製單一或多個頁面。 這些方法會建立新的 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

頁面迭代是如何運作的?

從上面的程式碼可以看出,它使用循環遍歷當前 PDF 文件的頁面,然後使用方法將每一頁複製到新的PdfDocument物件中。 最後,每一頁都會依序匯出為新文件。 迭代過程簡單且有效率,因為IronPDF會在內部處理所有複雜的 PDF 結構操作。

PageCount 屬性提供文件中的總頁數,讓您可以安全地進行迭代,而不會冒著索引越界異常的風險。 每次迭代都會建立一個完全獨立的 PDF 文檔,這表示您可以單獨處理、修改或分發每一頁,而不會影響原始文檔或其他分割頁面。 當需要提取特定頁面或並行處理頁面時,這種方法對處理大型文件尤其有益。

何時應該使用 CopyPages 而不是 CopyPage?

雖然 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 更有效率,因為它只需一次呼叫即可完成操作。 為了獲得全面的 PDF 處理功能,您可以將分割和合併作業結合起來,建立複雜的文件工作流程。

準備好要看看你還能做什麼了嗎? 請查看我們的教學頁面:整理 PDF 檔案。 您還可以探索如何為拆分的 PDF添加頁碼,或學習如何管理 PDF 元資料以增強您的文件管理工作流程。 如需了解更多進階 PDF 處理技巧,請造訪我們全面的API 參考文件

常見問題解答

如何在 C# 中將多頁 PDF 拆分成單獨的單頁 PDF?

您可以使用 IronPDF 的 CopyPage 方法分割多頁 PDF。只需載入 PDF 文件,使用 for 環路遍歷每頁,然後將每頁儲存為單獨的檔案。IronPDF 只需幾行代碼就能讓這個過程簡單直接,同時保持所有原始格式和品質。

我應該使用何種方法從 PDF 中提取單個頁面?

IronPDF 提供 CopyPage 方法,用於從 PDF 文件中提取單個頁面。此方法創建一個完全複製的指定頁面作為一個新的PdfDocument實例,保留原始文件中的所有格式、註釋和互動元素。

分割 PDF 是否能保持原始格式和品質?

是的,當您使用 IronPDF 的 CopyPage 方法分割 PDF 時,所有視覺元素、文字格式、內嵌資源和互動元素都會被保留。IronPDF 的 Chrome 渲染引擎可確保您分割的頁面保持原有的格式、圖像和文本質量。

我可以一次分割多個頁面,而不是一次分割一個頁面嗎?

是的,IronPDF 提供了用於單頁的 CopyPage 和用於多頁的 CopyPages 兩種方法。CopyPages方法允許您一次提取多個頁面到一個新的PdfDocument實例中,為各種分割場景提供了靈活性。

分割 PDF 文件的常見用例有哪些?

IronPDF 的分割功能非常適合將單獨的頁面分發給不同的收件人、分開處理頁面、與需要單頁輸入的文件管理系統整合,以及處理對文件完整性要求極高的法律文件、發票或歸檔記錄。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 17,920,939 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 變成 PDF。