Kuinka työskennellä Core Document Managementin kanssa .NETissä

Kuinka työskennellä Core Document Managementin kanssa .NETissä

Aspose.PDF FOSS for .NET tarjoaa Document-luokan keskeisenä sisäänkäyntinä kaikkiin PDF-toimintoihin. Asenna paketti dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha ja käytä Document.Create(), Document.Open(), Document.Save() ja Document.Merge() PDF-dokumenttien hallintaan ohjelmallisesti .NET 8+:ssa.

Vaiheittainen opas

Vaihe 1: Asenna paketti

Lisää Aspose.PDF FOSS projektiisi:

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

Vahvista viite .csproj:ssäsi:

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

Vaihe 2: Tuo vaaditut luokat

Lisää tarvittavat using‑direktiivit tiedostosi alkuun:

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

Vaihe 3: Luo uusi PDF-asiakirja

Käytä Document.Create() luodaksesi tyhjän muistissa olevan asiakirjan:

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

Vaihe 4: Avaa olemassa oleva PDF

Document.Open hyväksyy tavutaulukon, tiedostopolun tai virtauksen. Käytä using varmistaaksesi, että asiakirja vapautetaan käytön jälkeen:

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

Vaihe 5: Sivujen käyttö

Document.Pages-ominaisuus palauttaa PageCollection. Sivut ovat 1‑indeksoituja:

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;

Vaihe 6: Tallenna asiakirja

Tallenna virtaan käyttäen Document.Save(), tai sarjoita tavutaulukkoon käyttäen 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();

Vaihe 7: Yhdistä useita asiakirjoja

Käytä Document.Merge() yhdistääksesi useita Document-instansseja yhdeksi:

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() on vastaava ylikuormitus, joka hyväksyy tiedostopolkujen taulukot suoraan.

Yleisiä ongelmia ja korjauksia

Sivukokoelma on tyhjä Document.Create()-kutsun jälkeen
Document.Create() palauttaa asiakirjan ilman sivuja. Sinun on lisättävä sivu eksplisiittisesti ennen kuin käytät doc.Pages[1]. Yritys käyttää indeksiä, jota ei ole, heittää IndexOutOfRangeException.

InvalidOperationException kun kutsutaan Document.Open vioittuneessa tiedostossa
Jos PDF‑tavu­taulukko tai tiedosto on katkaistu tai virheellinen, Document.Open heittää. Varmista, että lähdetavu­taulukko on täydellinen PDF (alkaa %PDF-) ennen kuin annat sen Open.

Asiakirjaa ei vapautettu — muistin vuoto suuritehoisissa tilanteissa Kääri aina Document.Open- ja Document.Create-kutsut using-lauseeseen. Document-luokka toteuttaa IDisposable; jos sitä ei vapauteta, taustavirta ja ristiviitettaulukko pysyvät muistissa.

Save(ms) after ms.Position is not reset
Kun luetaan takaisin MemoryStream:stä doc.Save(ms):n jälkeen, nollaa ms.Position = 0 ennen lukemista. Tämän vaiheen jättämättä jättäminen saa lukijan kohtaamaan tyhjän tai osittaisen PDF:n.

Merge tuottaa asiakirjan odottamattomalla sivumäärällä
Varmista, että kaikki lähdeasiakirjat on täysin ladattu ennen kuin ne välitetään Document.Merge:lle. Lähdeasiakirjan vapauttaminen ennen merge-kutsua voi johtaa epätäydelliseen sivupuun.

Usein kysytyt kysymykset

Voinko avata salasanalla suojatun PDF:n?

Kyllä. Käytä Document.Open(data, password) tai Document.Open(path, password) antamaan omistajan tai käyttäjän salasana toisena argumenttina.

Eroaako Document.ToArray() tallentamisesta MemoryStreamiin?

Document.ToArray() on kätevä menetelmä, joka sisäisesti tallentaa MemoryStream:een ja palauttaa syntyneen tavutaulukon. Molemmat polut tuottavat identtisen PDF-tulosteen.

Mikä on Pages-ominaisuuden tyyppi?

Document.Pages on tyyppiä PageCollection. Se on 1‑indeksoitu; doc.Pages[1] on ensimmäinen sivu.

Voinko tallentaa asiakirjan useita kertoja?

Kyllä. Voit kutsua doc.Save() tai doc.ToArray() useita kertoja samassa asiakirja‑instanssissa. Jokainen kutsu sarjoittaa asiakirjan nykyisen tilan.

Kuinka tarkistan, onko asiakirja lisensoitu?

Document.IsLicensed palauttaa bool, joka ilmaisee sisäisen lisensointitilan. Aspose.PDF FOSS:lle tämä on vain tiedotuksellinen — aktivointia ei tarvita.

Katso myös

 Suomi