Ako pracovať s Core Document Management v .NET

Ako pracovať s Core Document Management v .NET

Aspose.PDF FOSS for .NET poskytuje triedu Document ako centrálny vstupný bod pre všetky PDF operácie. Nainštalujte balík pomocou dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha a použite Document.Create(), Document.Open(), Document.Save() a Document.Merge() na programatickú správu PDF dokumentov na .NET 8+.

Sprievodca krok za krokom

Krok 1: Nainštalujte balík

Pridajte Aspose.PDF FOSS do svojho projektu:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

Overte odkaz vo vašom .csproj:

<PackageReference Include="Aspose.Pdf.Foss" Version="0.1.0-alpha" />

Krok 2: Importovať požadované triedy

Pridajte potrebné using direktívy na začiatok vášho súboru:

using Aspose.Pdf;
using Aspose.Pdf.Annotations;

Krok 3: Vytvoriť nový PDF dokument

Použite Document.Create() na vytvorenie prázdneho dokumentu v pamäti:

using var doc = Document.Create();
// The document has no pages yet; add pages before saving
using var ms = new MemoryStream();
doc.Save(ms);
byte[] pdfBytes = ms.ToArray();

Krok 4: Otvorte existujúci PDF

Document.Open akceptuje pole bajtov, cestu k súboru alebo stream. Použite using na zabezpečenie, že dokument bude po použití uvoľnený:

// From a file path
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
// From a byte array loaded elsewhere
byte[] data = File.ReadAllBytes("input.pdf");
using var doc2 = Document.Open(data);

Krok 5: Prístup k stránkam

Vlastnosť Document.Pages vracia PageCollection. Strany sú indexované od 1:

using var doc = Document.Open("input.pdf");
int pageCount = doc.Pages.Count;
var firstPage = doc.Pages[1];
double width = firstPage.Width;
double height = firstPage.Height;

Krok 6: Uložiť dokument

Uložte do prúdu pomocou Document.Save(), alebo serializujte do poľa bajtov pomocou Document.ToArray():

using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com/test");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
byte[] savedBytes = ms.ToArray();

Krok 7: Zlúčiť viacero dokumentov

Použite Document.Merge() na skombinovanie viacerých Document inštancií do jednej:

using var doc1 = Document.Open("part1.pdf");
using var doc2 = Document.Open("part2.pdf");
var merged = Document.Merge(new[] { doc1, doc2 });
merged.Save("combined.pdf");

Document.MergeDocuments() je ekvivalentné preťaženie, ktoré priamo prijíma polia ciest k súborom.

Bežné problémy a riešenia

Zbierka strán je prázdna po Document.Create()
Document.Create() vracia dokument bez strán. Musíte explicitne pridať stránku pred prístupom k doc.Pages[1]. Pokus o prístup k indexu, ktorý neexistuje, vyvolá IndexOutOfRangeException.

InvalidOperationException pri volaní Document.Open na poškodenom súbore
Ak je pole bajtov PDF alebo súbor skrátený alebo neplatný, Document.Open vyhodí výnimku. Overte, že zdrojové pole bajtov je kompletný PDF (začína %PDF-) predtým, ako ho odovzdáte Open.

Dokument nebol uvoľnený — únik pamäte v scenároch s vysokou priepustnosťou
Vždy obalte volania Document.Open a Document.Create v príkaze using. Trieda Document implementuje IDisposable; ak ju neuvoľníte, podkladový prúd a tabuľka krížových odkazov zostanú v pamäti.

Save(ms) po tom, že ms.Position nie je resetovaný Pri čítaní späť z MemoryStream po doc.Save(ms) resetujte ms.Position = 0 pred čítaním. Vynechanie tohto kroku spôsobí, že čítač narazí na prázdny alebo čiastočný PDF.

Zlúčenie vytvára dokument s neočakávaným počtom stránok
Uistite sa, že všetky zdrojové dokumenty sú úplne načítané pred ich odovzdaním do Document.Merge. Uvoľnenie zdrojového dokumentu pred volaním zlúčenia môže spôsobiť neúplný strom strán.

Často kladené otázky

Môžem otvoriť PDF chránené heslom?

Áno. Použite Document.Open(data, password) alebo Document.Open(path, password) na zadanie vlastníckeho alebo používateľského hesla ako druhý argument.

Liší sa Document.ToArray() od ukladania do MemoryStream?

Document.ToArray() je pohodlná metóda, ktorá interne ukladá do MemoryStream a vracia výsledné pole bajtov. Obe cesty produkujú identický výstup PDF.

Aký je typ vlastnosti Pages?

Document.Pages je typu PageCollection. Je indexovaný od 1; doc.Pages[1] je prvá stránka.

Môžem dokument uložiť viackrát?

Áno. Môžete zavolať doc.Save() alebo doc.ToArray() viackrát na rovnakej inštancii dokumentu. Každé volanie serializuje aktuálny stav dokumentu.

Ako skontrolovať, či je dokument licencovaný?

Document.IsLicensed vracia bool, ktorá naznačuje interný stav licencovania. Pre Aspose.PDF FOSS je to len informačné — nie je potrebná žiadna aktivácia.

Pozri aj

 Slovenčina