Kā strādāt ar Core Document Management .NET vidē

Kā strādāt ar Core Document Management .NET vidē

Aspose.PDF FOSS for .NET nodrošina Document klasi kā galveno ieejas punktu visām PDF operācijām. Instalējiet pakotni ar dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha un izmantojiet Document.Create(), Document.Open(), Document.Save() un Document.Merge(), lai programmatiski pārvaldītu PDF dokumentus .NET 8+.

Rīcības rokasgrāmata

1. solis: instalējiet pakotni

Pievienojiet Aspose.PDF FOSS savam projektam:

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

Pārbaudiet atsauci savā .csproj:

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

2. solis: Importēt nepieciešamās klases

Pievienojiet nepieciešamos using norādījumus faila augšpusē:

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

3. solis: Izveidot jaunu PDF dokumentu

Izmantojiet Document.Create(), lai izveidotu tukšu atmiņā esošu dokumentu:

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

4. solis: Atvērt esošu PDF

Document.Open pieņem baitu masīvu, faila ceļu vai straumi. Izmantojiet using, lai nodrošinātu, ka dokuments tiek atbrīvots pēc lietošanas:

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

5. solis: Piekļūt lapām

Īpašība Document.Pages atgriež PageCollection. Lapas ir 1‑indeksētas:

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. solis: saglabāt dokumentu

Saglabājiet plūsmā, izmantojot Document.Save(), vai serializējiet uz baitu masīvu, izmantojot 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();

7. solis: Apvienot vairākus dokumentus

Izmantojiet Document.Merge(), lai apvienotu vairākas Document instances 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() ir ekvivalenta pārslogojuma metode, kas tieši pieņem faila ceļu masīvus.

Biežas problēmas un risinājumi

Pages collection is empty after Document.Create() Document.Create() atgriež dokumentu bez lapām. Jums jāpievieno lapa, pirms piekļūstat doc.Pages[1]. Mēģinājums piekļūt indeksam, kas nepastāv, izsauc IndexOutOfRangeException.

InvalidOperationException, izsaucot Document.Open bojātā failā Ja PDF baitu masīvs vai fails ir apgriezts vai nederīgs, Document.Open izmetīs izņēmumu. Pārbaudiet, vai avota baitu masīvs ir pilnīgs PDF (sākas ar %PDF-), pirms to nododat Open.

Document not disposed — memory leak in high-throughput scenarios Vienmēr ietveriet Document.Open un Document.Create izsaukumus using izteiksmē. Document klase īsteno IDisposable; ja to neatbrīvo, pamata straume un krustreferenču tabula paliek atmiņā.

Save(ms) pēc tam, kad ms.Position nav atiestatīts
Kad lasāt atpakaļ no MemoryStream pēc doc.Save(ms), atiestatiet ms.Position = 0 pirms lasīšanas. Šī soļa izlaistie ļauj lasītājam saskarties ar tukšu vai nepilnīgu PDF.

Apvienošana rada dokumentu ar negaidītu lapu skaitu
Pārliecinieties, ka visi avota dokumenti ir pilnībā ielādēti, pirms tos nododat Document.Merge. Avota dokumenta atbrīvošana pirms apvienošanas izsaukuma var izraisīt nepilnīgu lapu koku.

Biežāk uzdotie jautājumi

Vai es varu atvērt ar paroli aizsargātu PDF?

Jā. Izmantojiet Document.Open(data, password) vai Document.Open(path, password), lai nodrošinātu īpašnieka vai lietotāja paroli kā otro argumentu.

Vai Document.ToArray() atšķiras no saglabāšanas uz MemoryStream?

Document.ToArray() ir ērtības metode, kas iekšēji saglabā uz MemoryStream un atgriež rezultējošo baitu masīvu. Abas ceļi rada identisku PDF izvadi.

Kāda ir Pages īpašības tips?

Document.Pages ir tipa PageCollection. Tas ir 1‑indeksēts; doc.Pages[1] ir pirmā lapa.

Vai es varu saglabāt dokumentu vairākas reizes?

Jā. Jūs varat izsaukt doc.Save() vai doc.ToArray() vairākas reizes uz tās pašas dokumenta instances. Katrs izsaukums serializē pašreizējo dokumenta stāvokli.

Kā pārbaudīt, vai dokuments ir licencēts?

Document.IsLicensed atgriež bool, kas norāda iekšējo licences stāvokli. Aspose.PDF FOSS gadījumā tas ir tikai informatīvs — aktivācija nav nepieciešama.

Skatīt arī

 Latviešu