Tách PDF thành nhiều tệp bằng C#

PDF là một trong những định dạng tệp được sử dụng phổ biến nhất và có tính di động cao. Là một nhà phát triển, bạn có thể đã phải đối mặt với tình huống chia nhỏ các tệp PDF lớn theo chương trình. Trong một trong các bài báo, chúng tôi đã học cách chia tệp PDF trong Java. Hôm nay, bài viết này thảo luận về các cách khác nhau về cách chia nhỏ tệp PDF bằng C# trong các ứng dụng .NET.

.NET API để chia nhỏ tệp PDF

Để chia nhỏ các tệp PDF, chúng tôi sẽ sử dụng GroupDocs.Merger for .NET. Đó là API cho phép phát triển nhanh chóng để tích hợp các tính năng với rất ít dòng mã. Ngoài việc chia nhỏ, nó còn hỗ trợ hợp nhất, hoán đổi hoặc cắt xén các tài liệu có định dạng tệp khác nhau.

Bạn có thể tải xuống trình cài đặt DLL hoặc MSI từ phần tải xuống hoặc cài đặt API trong ứng dụng .NET của bạn qua NuGet.

PM> Install-Package GroupDocs.Merger

Tách tệp PDF thành tệp nhiều trang bằng C#

Các bước sau đây hướng dẫn cách bạn có thể chia tệp PDF thành nhiều tệp bằng C#:

  • Xác định định dạng (các) tệp đầu ra.
  • Xác định khoảng cách giữa các trang bằng cách sử dụng SplitOptions.
  • Tải tệp PDF bằng lớp Sáp nhập.
  • Tách tệp PDF đã tải theo khoảng thời gian đã xác định bằng phương pháp Split().

Mẫu mã sau đây cho biết cách chia tệp PDF thành nhiều tệp.

/*
 * Tách tệp PDF thành nhiều tệp bằng C#
 */
// Xác định định dạng (các) tệp đầu ra
string filePathOut = "path/splitPDF_{0}.{1}";

// Xác định khoảng thời gian chia tách và chế độ chia tách
SplitOptions splitOptions = new SplitOptions(filePathOut, new int[] { 3, 6, 8 }, SplitMode.Interval);

// Tải tệp PDF & Tách PDF theo các tùy chọn phân tách
using (Merger merger = new Merger("path/document.pdf"))
{
    merger.Split(splitOptions);
} 

Trích xuất các trang từ tệp PDF theo phạm vi

Các bước sau đây hướng dẫn cách trích xuất các trang từ PDF bằng C# bằng cách chia nhỏ theo phạm vi cho trước:

  • Xác định định dạng (các) tệp đầu ra.
  • Cung cấp phạm vi trang bằng cách sử dụng SplitOptions.
  • Tải tệp PDF bằng lớp Sáp nhập.
  • Sử dụng phương pháp Split() để chia tệp PDF đã tải theo phạm vi đã xác định.

Đoạn mã sau cho biết cách tách PDF và trích xuất các trang bằng cách cung cấp phạm vi.

/*
 * Tách tệp PDF theo Phạm vi đã cho thành các tệp Trang đơn bằng C#
 */
// Xác định định dạng (các) tệp đầu ra
string filePathOut = "path/splitPDF_{0}.{1}";

// Xác định Phạm vi để trích xuất dưới dạng tài liệu một trang
SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 7);

// Tải tệp PDF & Tách PDF theo các tùy chọn phân tách
using (Merger merger = new Merger("path/document.pdf"))
{
    merger.Split(splitOptions);
}

Trích xuất trang chẵn/lẻ từ tệp PDF bằng C#

Các bước sau đây hướng dẫn cách trích xuất các trang chẵn/lẻ từ tệp PDF bằng cách chia tách trong phạm vi nhất định chỉ bằng cách áp dụng các bộ lọc trong C#:

  • Xác định định dạng (các) tệp đầu ra.
  • Cung cấp phạm vi trang bằng cách sử dụng SplitOptions.
  • Áp dụng bộ lọc cho các trang chẵn, lẻ hoặc tất cả các trang bằng RangeMode.
  • Tải tệp PDF bằng lớp Sáp nhập.
  • Sử dụng phương pháp Split() để phân tách tệp PDF đã tải theo bộ lọc đã xác định.

Đoạn mã sau đây cho biết cách trích xuất tất cả các trang chẵn/lẻ trong phạm vi đã xác định của tệp PDF.

/*
 * Tách tệp PDF theo Phạm vi & Bộ lọc đã cho (Trang chẵn/lẻ) thành tệp Trang đơn bằng C#
 */
// Xác định định dạng (các) tệp đầu ra
string filePathOut = "path/splitPDF_{0}.{1}";

// Xác định Phạm vi & Bộ lọc để trích xuất tất cả các Trang LẺ trong Phạm vi đã cho dưới dạng tài liệu một trang
SplitOptions splitOptions = new SplitOptions(filePathOut, 3, 7, RangeMode.OddPages);

// Tải tệp PDF & Tách PDF theo các tùy chọn phân tách
using (Merger merger = new Merger("path/document.pdf"))
{
    merger.Split(splitOptions);
}

Tách tệp PDF thành nhiều tệp một trang

Các bước sau đây hướng dẫn cách chúng tôi có thể tách một tệp PDF để trích xuất các trang dưới dạng nhiều tệp một trang trong C#:

  • Xác định định dạng (các) tệp đầu ra.
  • Xác định số trang chính xác bằng cách sử dụng SplitOptions.
  • Tải tệp PDF bằng lớp Sáp nhập.
  • Tách tệp PDF đã tải theo các trang đã xác định bằng phương pháp Split().

Mẫu mã sau đây cho biết cách chia tệp PDF thành nhiều tệp một trang.

/*
 * Tách tệp PDF thành các tệp Trang đơn bằng C#
 */
// Xác định định dạng (các) tệp đầu ra
string filePathOut = "path/splitPDF_{0}.{1}";

// Xác định các trang để được trích xuất dưới dạng tài liệu một trang
SplitOptions splitOptions = new SplitOptions(filePathOut, new int[] { 3, 6, 8 });

// Tải tệp PDF & Tách PDF theo các tùy chọn phân tách
using (Merger merger = new Merger("path/document.pdf"))
{
    merger.Split(splitOptions);
}

Tóm tắt thay đổi mã

Trong tất cả các trường hợp, điều thay đổi là cách xác định SplitOptions. Dưới đây là tóm tắt về sự thay đổi trong từng đoạn mã cho từng tình huống. Bạn có thể sử dụng các cài đặt sau theo yêu cầu trong mã của mình. Ở đây, tôi đã sử dụng một tệp PDF có 10 trang.

  • Đối với tệp nhiều trang - Sử dụng khoảng thời gian: [1,2], [3,4,5], [6,7], [8,9,10].
new SplitOptions(outputFile,  new int[] { 3, 6, 8 }, SplitMode.Interval)
  • Trích xuất các trang trong phạm vi: [3], [4], [5], [6]
new SplitOptions(outputFile, 3, 6);
  • Phạm vi có Bộ lọc: [3], [5], [7]
new SplitOptions(outputFile, 3, 8, (Integer)RangeMode.OddPages);
  • Các trang cá nhân: [3], [4], [9]
new SplitOptions(outputFile, new int[] { 3, 4, 9 });

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không bị giới hạn đánh giá.

Sự kết luận

Để kết thúc, chúng ta đã thảo luận về các cách chia nhỏ tệp PDF bằng C#. Đầu tiên, chúng tôi chia tệp PDF thành các tài liệu nhiều trang và một trang. Chúng tôi cũng đã trích xuất các trang từ tệp PDF. Đầu tiên, chúng tôi trích xuất tất cả các trang và sau đó là các trang chẵn/lẻ trong phạm vi đã cho. Bạn có thể thử xây dựng Ứng dụng .NET tách PDF của riêng mình bằng API GroupDocs.Merger.

Để tìm hiểu thêm về API, hãy truy cập tài liệu. Nếu có thắc mắc, hãy liên hệ với chúng tôi qua diễn đàn.

Xem thêm