Kaip dirbti su Core Document Management .NET

Kaip dirbti su Core Document Management .NET

Aspose.PDF FOSS for .NET suteikia Document klasę kaip pagrindinį įėjimo tašką visoms PDF operacijoms. Įdiekite paketą naudodami dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha ir naudokite Document.Create(), Document.Open(), Document.Save() ir Document.Merge() PDF dokumentų valdymui programiškai .NET 8+.

Žingsnis po žingsnio vadovas

Žingsnis 1: Įdiekite paketą

Pridėkite Aspose.PDF FOSS į savo projektą:

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

Patikrinkite nuorodą savo .csproj:

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

Žingsnis 2: Importuoti reikiamas klases

Pridėkite reikiamus using direktyvas failo viršuje:

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

3 žingsnis: Sukurti naują PDF dokumentą

Naudokite Document.Create(), kad sukurtumėte tuščią atminties dokumentą:

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();

Žingsnis 4: Atidaryti esamą PDF

Document.Open priima baitų masyvą, failo kelią arba srautą. Naudokite using, kad užtikrintumėte, jog dokumentas būtų išvalytas po naudojimo:

// 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);

Žingsnis 5: Prieiga prie puslapių

Document.Pages savybė grąžina PageCollection. Puslapiai yra indeksuojami nuo 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;

6 žingsnis: Išsaugoti dokumentą

Išsaugoti į srautą naudojant Document.Save(), arba serializuoti į baitų masyvą naudojant 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();

Žingsnis 7: Sujungti kelis dokumentus

Naudokite Document.Merge(), kad sujungtumėte kelias Document egzempliorius į vieną:

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() yra ekvivalentinis perkrovimas, kuris priima failų kelių masyvus tiesiogiai.

Bendros problemos ir sprendimai

Pages collection is empty after Document.Create() Document.Create() grąžina dokumentą be puslapių. Privalote aiškiai pridėti puslapį prieš pasiekiant doc.Pages[1]. Bandymas pasiekti indeksą, kuris neegzistuoja, išmeta IndexOutOfRangeException.

InvalidOperationException iškviečiant Document.Open su sugadintu failu
Jei PDF baitų masyvas arba failas yra sutrumpintas arba neteisingas, Document.Open išmes išimtį. Patikrinkite, ar šaltinio baitų masyvas yra pilnas PDF (prasideda %PDF-) prieš perduodant jį Open.

Dokumentas neuždarytas — atminties nuotėkis didelio pralaidumo scenarijuose
Visada supakuokite Document.Open ir Document.Create iškvietimus į using sakinį. Document klasė įgyvendina IDisposable; nesunaikinus jos sukeliamas pagrindinis srautas ir kryžminės nuorodos lentelė lieka atmintyje.

Save(ms) po to, kai ms.Position nėra atstatytas
Kai skaitote atgal iš MemoryStream po doc.Save(ms), atstatykite ms.Position = 0 prieš skaitymą. Šio žingsnio praleidimas lemia, kad skaitytojas susiduria su tuščiu arba daliniu PDF.

Suliejimas sukuria dokumentą su netikėtu puslapių skaičiumi
Įsitikinkite, kad visi šaltinio dokumentai yra visiškai įkelti prieš perduodant juos Document.Merge. Išlaisvinus šaltinio dokumentą prieš sujungimo iškvietimą, gali susidaryti nepilnas puslapių medis.

Dažniausiai užduodami klausimai

Ar galiu atidaryti slaptažodžiu apsaugotą PDF?

Taip. Naudokite Document.Open(data, password) arba Document.Open(path, password), kad pateiktumėte savininko arba naudotojo slaptažodį kaip antrąjį argumentą.

Ar Document.ToArray() skiriasi nuo įrašymo į MemoryStream?

Document.ToArray() yra patogus metodas, kuris viduje išsaugo į MemoryStream ir grąžina gautą baitų masyvą. Abu keliai sukuria identišką PDF išvestį.

Koks yra Pages savybės tipas?

Document.Pages yra tipo PageCollection. Tai yra 1‑indeksuota; doc.Pages[1] yra pirmas puslapis.

Ar galiu dokumentą išsaugoti kelis kartus?

Taip. Galite iškviesti doc.Save() arba doc.ToArray() kelis kartus toje pačioje dokumento egzemplioriuje. Kiekvienas iškvietimas serializuoja dabartinę dokumento būseną.

Kaip patikrinti, ar dokumentas yra licencijuotas?

Document.IsLicensed grąžina bool, nurodantį vidinę licencijavimo būseną. For Aspose.PDF FOSS this is informational only — no activation is required.

Žr. taip pat

 Lietuvių