使用 C# 將 PDF 拆分為多個文件

PDF 是最常用的文件格式之一,具有很高的可移植性。作為開發人員,您可能遇到過以編程方式拆分大型 PDF 文件的場景。在其中一篇文章中,我們學習了 用 Java 拆分 PDF 文件。今天,本文討論如何在 .NET 應用程序中使用 C# 拆分 PDF 文件的不同方法。

用於拆分 PDF 文件的 .NET API

為了拆分 PDF 文件,我們將使用 GroupDocs.Merger for .NET。正是 API 允許快速開發以使用很少的代碼行來集成功能。除了拆分,它還支持合併、交換或修剪不同文件格式的文檔

您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或通過 NuGet 在您的 .NET 應用程序中安裝 API。

PM> Install-Package GroupDocs.Merger

使用 C# 將 PDF 文件拆分為多頁文件

以下步驟指導您如何使用 C# 將 PDF 文件拆分為多頁文件:

  • 定義輸出文件格式。
  • 使用 SplitOptions 定義頁面間隔。
  • 使用 Merger 類加載 PDF 文件。
  • 使用 Split() 方法根據定義的間隔拆分加載的 PDF。

以下代碼示例顯示瞭如何將 PDF 文件拆分為多頁文件。

/*
 * 使用 C# 將 PDF 文件拆分為多頁文件
 */
// 定義輸出文件格式
string filePathOut = "path/splitPDF_{0}.{1}";

// 定義拆分間隔和拆分模式
SplitOptions splitOptions = new SplitOptions(filePathOut, new int[] { 3, 6, 8 }, SplitMode.Interval);

// 根據拆分選項加載 PDF 文件和拆分 PDF
using (Merger merger = new Merger("path/document.pdf"))
{
    merger.Split(splitOptions);
} 

按範圍從 PDF 文件中提取頁面

以下步驟指導如何通過根據給定範圍拆分使用 C# 從 PDF 中提取頁面:

  • 定義輸出文件格式。
  • 使用 SplitOptions 提供頁面範圍。
  • 使用 Merger 類加載 PDF 文件。
  • 使用 Split() 方法根據定義的範圍拆分加載的 PDF。

以下代碼片段顯示瞭如何通過提供範圍來拆分 PDF 和提取頁面。

/*
 * 使用 C# 將給定範圍的 PDF 文件拆分為單頁文件
 */
// 定義輸出文件格式
string filePathOut = "path/splitPDF_{0}.{1}";

// 定義範圍以提取為單頁文檔
SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 7);

// 根據拆分選項加載 PDF 文件和拆分 PDF
using (Merger merger = new Merger("path/document.pdf"))
{
    merger.Split(splitOptions);
}

使用 C# 從 PDF 文件中提取偶數/奇數頁

以下步驟指導如何通過僅在 C# 中應用過濾器在給定範圍內拆分來從 PDF 文件中提取偶數/奇數頁:

  • 定義輸出文件格式。
  • 使用 SplitOptions 提供頁面範圍。
  • 使用 RangeMode 對偶數、奇數或所有頁面應用過濾器。
  • 使用 Merger 類加載 PDF 文件。
  • 使用 Split() 方法根據定義的過濾器分離加載的 PDF。

以下代碼片段顯示瞭如何提取 PDF 文件定義範圍內的所有奇數/偶數頁。

/*
 * 使用 C# 將給定範圍和過濾器(偶數/奇數頁)的 PDF 文件拆分為單頁文件
 */
// 定義輸出文件格式
string filePathOut = "path/splitPDF_{0}.{1}";

// 定義範圍和過濾器以將給定範圍內的所有奇數頁提取為單頁文檔
SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 7, RangeMode.OddPages);

// 根據拆分選項加載 PDF 文件和拆分 PDF
using (Merger merger = new Merger("path/document.pdf"))
{
    merger.Split(splitOptions);
}

將 PDF 文件拆分為多個單頁文件

以下步驟指導我們如何在 C# 中拆分 PDF 以將頁面提取為多個單頁文件:

  • 定義輸出文件格式。
  • 使用 SplitOptions 定義確切的頁碼。
  • 使用 Merger 類加載 PDF 文件。
  • 使用 Split() 方法根據定義的頁面拆分加載的 PDF。

以下代碼示例顯示瞭如何將 PDF 文件拆分為多個單頁文件。

/*
 * 使用 C# 將 PDF 文件拆分為單頁文件
 */
// 定義輸出文件格式
string filePathOut = "path/splitPDF_{0}.{1}";

// 定義要提取為單頁文檔的頁面
SplitOptions splitOptions = new SplitOptions(filePathOut, new int[] { 3, 6, 8 });

// 根據拆分選項加載 PDF 文件和拆分 PDF
using (Merger merger = new Merger("path/document.pdf"))
{
    merger.Split(splitOptions);
}

代碼更改摘要

在所有場景中,改變的是定義 SplitOptions 的方式。以下是每個場景的每個代碼片段的更改摘要。您可以根據代碼中的要求使用以下設置。在這裡,我使用了一個 10 頁的 PDF 文件。

  • 對於多頁文件 - 使用間隔:[1,2]、[3,4,5]、[6,7]、[8,9,10]。
new SplitOptions(outputFile,  new int[] { 3, 6, 8 }, SplitMode.Interval)
  • 提取範圍內的頁面:[3]、[4]、[5]、[6]
new SplitOptions(outputFile, 3, 6);
  • 帶過濾器的範圍:[3]、[5]、[7]
new SplitOptions(outputFile, 3, 8, (Integer)RangeMode.OddPages);
  • 個人頁面:[3]、[4]、[9]
new SplitOptions(outputFile, new int[] { 3, 4, 9 });

獲取免費的 API 許可證

您可以獲得免費的臨時許可證,以便在不受評估限制的情況下使用 API。

結論

最後,我們討論了使用 C# 拆分 PDF 文件的方法。首先,我們將 PDF 文件拆分為多頁和單頁文檔。我們還從 PDF 文件中提取頁面。首先,我們提取所有頁面,然後提取給定範圍內的偶數/奇數頁面。您可以嘗試使用 GroupDocs.Merger API 構建您自己的 PDF 拆分 .NET 應用程序。

要了解有關 API 的更多信息,請訪問 文檔。如有疑問,請通過論壇 聯繫我們。

也可以看看