Gestionarea documentelor
Gestionarea documentelor
Document este obiectul rădăcină în Aspose.PDF FOSS pentru .NET. Reprezintă un
fișier PDF complet și oferă acces la pagini, metadate, câmpuri de formular și toate
celelalte structuri PDF. Deschideți fișierele existente cu Document.Open și creați altele noi
cu constructorul Document.
Deschiderea și crearea documentelor
// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
// Open from a file path
using var doc2 = new Document("input.pdf");
// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");Lucrul cu pagini
PageCollection gestionează paginile documentului. Accesați paginile prin indexare începând de la 1, adăugați pagini noi sau eliminați pe cele existente.
using var doc = Document.Open(pdfBytes);
// Access first page
var page = doc.Pages[1];
// Add a blank page
var newPage = doc.Pages.Add();
// Get page count
int count = doc.Pages.Count;Geometria paginii
Fiecare pagină definește mai multe casete de delimitare. Folosiți metodele setter pe Page pentru a le ajusta.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);Salvarea documentelor
Salvați într-o cale de fișier, un flux sau un tablou de octeți.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Atașamente de fișiere
FileSpecification reprezintă atașamente de fișiere încorporate într-un PDF.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Ștampile de imagine
ImageStamp suprapune o imagine raster pe o pagină la o poziție specificată.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Colecții de operatori
OperatorCollection pe fiecare pagină conține operatorii brut ai fluxului de conținut. Folosiți-l pentru inspecție sau manipulare de conținut la nivel scăzut.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Sfaturi și cele mai bune practici
- Încapsulați
Documentîntr-o declarațieusingpentru a elibera rapid handle-urile de fișier. - Utilizați
Document.Open(byte[])pentru fluxuri de lucru în memorie pentru a evita problemele de blocare a fișierelor. - Modificați casetele paginii (MediaBox, CropBox) înainte de a adăuga conținut pentru a asigura un spațiu de coordonate corect.
- Apelați
Saveo singură dată după toate modificările — salvările repetate sunt mai lente, dar sigure. - Utilizați
PageCollection.Accept(AnnotationSelector)pentru a procesa în lot adnotările pe toate paginile.
Probleme comune
| Issue | Cause | Fix |
|---|---|---|
Document.Open aruncă pe PDF valid | Fișierul este criptat cu o parolă | Furnizați parametrul de parolă în constructor |
| Numărul de pagini este 0 după construcție | Noul Document() începe gol | Apelați doc.Pages.Add() pentru a adăuga o pagină goală |
| Fișierul salvat este mai mare decât se aștepta | Imagini sau fonturi încorporate de mai multe ori | Utilizați optimizarea (consultați ghidul Conversie și Optimizare) |
Pages[0] aruncă eroare de index | Paginile sunt numerotate de la 1, nu de la 0 | Utilizați Pages[1] pentru prima pagină |
Întrebări frecvente
Cum pot să îmbin două documente PDF?
Utilizați PdfFileEditor.Concatenate din API-ul Facades, sau copiați manual pagini dintr-un document în altul utilizând PageCollection.
Pot să deschid un PDF dintr-un URL sau flux?
Da. Citește conținutul URL-ului într-un byte[] mai întâi, apoi îl transmite către
Document.Open(byte[]).
Cum pot șterge o pagină?
Apelaţi doc.Pages.Delete(pageNumber) unde pageNumber este indexat de la 1.
Este Document thread-safe?
Nu. Fiecare fir de execuție ar trebui să lucreze cu propria sa instanță Document.
Rezumatul referinței API
| Class / Method | Description |
|---|---|
Document | Obiect PDF rădăcină; conține pagini, metadate și câmpuri de formular |
Document.Open | Fabrică statică pentru a deschide un PDF dintr-un tablou de octeți |
Document.Save | Serializați documentul într-un fișier sau flux |
Page | Pagină PDF unică cu conținut, adnotări și geometrie |
Page.SetMediaBox | Definește caseta media a paginii |
Page.SetCropBox | Definește zona de decupare vizibilă |
Page.SetRotation | Rotește pagina cu 0, 90, 180 sau 270 de grade |
PageCollection | Colecție ordonată de pagini într-un document |
PageCollection.Add | Adaugă o pagină goală |
OperatorCollection | Operatori brut de flux de conținut pentru o pagină |
FileSpecification | Descriptor de atașament de fișier încorporat |
ImageStamp | Stampă de suprapunere a imaginii pentru pagini |
XFormCollection | XObjecte de formular reutilizabile în document |