Kako raditi s upravljanjem osnovnim dokumentima u .NET-u
Aspose.PDF FOSS for .NET provides the Document class kao centralna ulazna točka za sve PDF operacije. Instalirajte paket s dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha i korištenje Document.Create(), Document.Open(), Document.Save(), i Document.Merge() za programsko upravljanje PDF dokumentima na .NET 8+.
Korak po korak vodič
Korak 1: Instaliraj paket
Dodajte Aspose.PDF FOSS u svoj projekt:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaProvjerite referenciju u vašem .csproj:
<PackageReference Include="Aspose.Pdf.Foss" Version="0.1.0-alpha" />Korak 2: Uvoz zahtjevnih klasa
Dodajte potrebne uputstva na vrhu datoteke:
using Aspose.Pdf;
using Aspose.Pdf.Annotations;Korak 3: Stvaranje novog PDF dokumenta
Upotreba: Document.Create() U slučaju da je to moguće, mora se provesti:
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();Korak 4: Otvorite postojeći PDF
Document.Open prihvaća bajtni niz, putanje datoteke ili tok. Use using za osiguravanje da se dokument nakon uporabe odbaci:
// 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);Korak 5: Pristup stranicama
U skladu s člankom 1. Document.Pages svojstvo vraća a PageCollection.Stranice su indeksirane na jedan:
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;Korak 6: Sačuvati dokument
Sačuvaj u potok s Document.Save(), ili serijalizaciju u bajtni niz s: 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();Korak 7: Spajanje više dokumenata
Upotreba: Document.Merge() kombinirati više Document Uputstva u jednu:
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 ekvivalentna preopterećenje koje prihvaća arhive putanje datoteke izravno.
Česta pitanja i rješenja
Sastav stranica je prazan nakon Document.Create ().) Document.Create() vraća dokument bez stranica. Morate izričito dodati stranu prije pristupa doc.Pages[1].Pokušaj pristupa indeksu koji ne postoji baca na… IndexOutOfRangeException.
Nevaljan operacija iznimka pri pozivanju Document.Open na pokvarenoj datoteki Ako je PDF bajtni niz ili datoteka skraćena ili nevaljan, Document.Open će baciti. Potvrdite da je izvorni bajt niz kompletan PDF (počinje s %PDF-) prije nego što je proslijedi na: Open.
U slučaju da je to moguće, potrebno je provesti postupke za utvrđivanje i preispitivanje podataka. Uvijek se omotati. Document.Open i u članku 1. Document.Create pozivi u using Izjava. Document razredni opremi IDisposable;Ako se ne ukloni, osnovni tok i tabela usporedbi ostaju u memoriji.
Save(ms) nakon ms.Position nije resetiran Kad čitate natrag iz MemoryStream nakon doc.Save(ms), resetiranje ms.Position = 0 Ako se ovaj korak izostavi, čitač će naletjeti na prazan ili djelomičan PDF.
Udruženje proizvodi dokument s neočekivanim brojem stranica Završite s ispitivanjem. Document.Merge.Uklanjanje izvornog dokumenta prije poziva za spajanje može rezultirati nepotpunim stablom stranica.
Česta pitanja
Mogu li otvoriti PDF sa lozinkom?
Da, koristi. Document.Open(data, password) ili: Document.Open(path, password) U slučaju da se ne može utvrditi tačka 1., podnositelj zahtjeva mora biti:.
Da li se Document.ToArray ((() razlikuje od pohranjivanja u MemoryStream?
Document.ToArray() je pogodnost metoda koja unutarnje štedi na a MemoryStream Oba puta proizvedu identičan izlaz PDF-a.
Što je vrsta svojstva stranice?
Document.Pages je tipa: PageCollection.- indeksiran je na 1; doc.Pages[1] je prva stranica.
Mogu li da sačuvam dokument više puta?
Možete nazvati. doc.Save() ili: doc.ToArray() Svaki poziv serijalizira trenutno stanje dokumenta.
Kako provjeriti je li dokument licenciran?
Document.IsLicensed vraća a bool U slučaju FOSS-a to je samo informativno ne zahtijeva se aktivacija.