Memóriakorlátozásokkal és -problémákkal szembesülhet a nagy PDF-fájlok feldolgozása során a MemoryStream Class használatával C# nyelven. A bemeneti fájl méretét korlátozó megoldás nem működik olyan esetekben, amikor a PDF fájl mérete jóval nagyobb, mint 2,5 GB. Az alábbi lépésenkénti útmutató megtanítja, hogyan dolgozzon fel nagy PDF fájlokat C# nyelven speciális adatfolyamok segítségével.
A nagy PDF-fájlok feldolgozásának lépései C#-ban
- Nyissa meg a Visual Studio-t, és hozzon létre egy üres C# konzolalkalmazást
- Telepítse a Aspose.PDF for .NET legújabb verzióját a NuGet.org webhelyről
- A nagy PDF-fájlok feldolgozásához inicializálja a OptimizedMemoryStream objektumot
- Töltsön be nagy méretű PDF-et a FileStream segítségével
- Írjon FileStream bájtokat az OptimizedMemoryStreambe
- Inicializálja a Document objektumot az InputStream alapú konstruktor segítségével
- Manipulálja vagy módosítsa a PDF-dokumentumot igényei szerint
- Mentse el a módosított és feldolgozott dokumentumot a lemezre
Ha nagy méretű PDF-dokumentumokkal dolgozik, és korlátozza a helyi lemezméretet, olyan interfészre van szüksége, amely lehetővé teszi a keresési képesség használatát hatalmas PDF-dokumentumok betöltéséhez. Az egyszerű C# MemoryStream Class korlátozásokat kínál, és nagy memóriaproblémákat okoz, miközben hatalmas PDF-fájlokat dolgoz fel a keresési képesség hiánya miatt. A fejlett streamek használatának megoldása ebben a szakaszban jön képbe. A következő kódrészlet bemutatja, hogyan használhat speciális adatfolyamokat hatalmas PDF fájlok betöltésére C# nyelven.
Kód nagy PDF-fájlok feldolgozásához C#-ban
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); | |
} | |
} | |
} |
A fenti egyszerű kódrészlet lehetővé teszi tetszőleges méretű PDF dokumentumok feldolgozását anélkül, hogy azokat helyi lemezen kellene tárolnia. A .NET-hez készült Aspose.PDF-ben található OptimizedMemoryStream osztály lehetővé teszi hatalmas PDF-dokumentumok betöltését a memóriafolyam segítségével C#-ban. Olyan MemoryStream-et határoz meg, amelynek kapacitása nagyobb a szabványnál, és lehetővé teszi 2,5 GB-nál nagyobb méretű, hatalmas PDF-fájlok feldolgozását.
Egy másik útmutatót is megtekinthet a PDF könyvjelzők olvasása C# használatával oldalon, ha a PDF-dokumentumban vannak könyvjelzők, és el szeretné olvasni őket a .NET-alkalmazásban.