Jak przetwarzać duże pliki PDF w C#

Możesz napotkać ograniczenia i problemy z pamięcią podczas przetwarzania dużych plików PDF przy użyciu klasy MemoryStream w języku C#. Żadne rozwiązanie ograniczające rozmiar pliku wejściowego nie działa w przypadkach, gdy rozmiar pliku PDF jest znacznie większy niż 2,5 GB. Poniższy przewodnik krok po kroku nauczy Cię, jak przetwarzać duże pliki PDF w C# przy użyciu zaawansowanych strumieni.

Kroki przetwarzania dużych plików PDF w języku C#

  1. Otwórz program Visual Studio i utwórz pustą aplikację konsoli C#
  2. Zainstaluj najnowszą wersję Aspose.PDF for .NET z NuGet.org
  3. Zainicjuj obiekt OptimizedMemoryStream, aby przetworzyć duży plik PDF
  4. Załaduj plik PDF o dużym rozmiarze za pomocą FileStream
  5. Zapisz bajty FileStream w OptimizedMemoryStream
  6. Zainicjuj obiekt Document przy użyciu konstruktora opartego na InputStream
  7. Manipuluj lub modyfikuj dokument PDF zgodnie ze swoimi potrzebami
  8. Zapisz zmodyfikowany i przetworzony dokument na dysku

Gdy pracujesz z dużymi dokumentami PDF i masz ograniczenia związane z rozmiarem dysku lokalnego, potrzebujesz interfejsu, który pozwoli na użycie funkcji wyszukiwania do załadowania ogromnych dokumentów PDF. Prosta klasa C# MemoryStream oferuje ograniczenia i powoduje duże problemy z pamięcią podczas przetwarzania ogromnych plików PDF z powodu braku możliwości wyszukiwania. Na tym etapie pojawia się rozwiązanie polegające na wykorzystaniu zaawansowanych strumieni. Poniższy fragment kodu pokazuje, jak można używać zaawansowanych strumieni do ładowania ogromnych plików PDF w języku C#.

Kod do przetwarzania dużych plików PDF w C#

using System;
using System.IO;
// Add reference to Aspose.PDF for .NET API
// Use following namespace to process large PDF files
using Aspose.Pdf;
namespace ProcessLargePDFFiles
{
class Program
{
static void Main(string[] args)
{
// Set license before processing large PDF files
Aspose.Pdf.License AsposePDFLicense = new Aspose.Pdf.License();
AsposePDFLicense.SetLicense(@"c:\asposelicense\license.lic");
string outFile = @"c:\LargeSizePDF_Processed.pdf";
// Initialize OptimizedMemoryStream object in which large size PDF will be stored for loading
OptimizedMemoryStream ms = new OptimizedMemoryStream();
// Read large size PDF document from disk using FileStream
using (FileStream file = new FileStream(@"c:\LargeSizePDF.pdf", FileMode.Open, FileAccess.Read))
{
byte[] bytes = new byte[file.Length];
file.Read(bytes, 0, (int)file.Length);
// Write large PDF bytes to OptimizedMemoryStream
ms.Write(bytes, 0, (int)file.Length);
}
// Use advanced stream to process large PDF file and load into Document object
Document doc = new Document(ms);
// Save the output PDF document
doc.Save(outFile);
}
}
}

Powyższy prosty fragment kodu umożliwia przetwarzanie dokumentów PDF o dowolnych rozmiarach bez konieczności przechowywania ich na dysku lokalnym. Klasa OptimizedMemoryStream w Aspose.PDF dla platformy .NET umożliwia ładowanie ogromnych dokumentów PDF przy użyciu strumienia pamięci w języku C#. Definiuje MemoryStream, który ma pojemność większą niż standardowa i pozwala przetwarzać ogromne pliki PDF o rozmiarze większym niż 2,5 GB.

Możesz również sprawdzić inny przewodnik na jak czytać zakładki PDF za pomocą C# na wypadek, gdyby Twój dokument PDF miał zakładki i chcesz je przeczytać w swojej aplikacji .NET.

 Polski