Gestió de documents
Gestió de documents
Document és l’objecte arrel a Aspose.PDF FOSS per a .NET. Representa un
fitxer PDF complet i proporciona accés a les pàgines, metadades, camps de formulari i totes
les altres estructures PDF. Obriu fitxers existents amb Document.Open i creeu-ne de nous
amb el constructor Document.
Obrir i crear documents
// 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");Treballant amb pàgines
PageCollection gestiona les pàgines del document. Accediu a les pàgines per índex basat en 1, afegiu noves pàgines o elimineu les existents.
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 de la pàgina
Cada pàgina defineix diverses caixes delimitadores. Utilitzeu els mètodes setter a Page per ajustar‑les.
var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);Desar documents
Desa a una ruta de fitxer, un flux o una matriu de bytes.
// Save to file
doc.Save("output.pdf");
// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);Fitxers adjunts
FileSpecification representa fitxers adjunts incrustats en un PDF.
var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);Segells d’imatge
ImageStamp superposa una imatge raster a una pàgina en una posició especificada.
var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");Col·leccions d’operadors
OperatorCollection a cada pàgina conté els operadors del flux de contingut en brut. Utilitzeu-lo per a inspecció o manipulació de contingut de baix nivell.
var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
// Inspect each operator
}Consells i bones pràctiques
- Envolta
Documenten una declaracióusingper alliberar els identificadors de fitxer immediatament. - Utilitza
Document.Open(byte[])per a fluxos de treball en memòria per evitar problemes de bloqueig de fitxers. - Modifica les caixes de pàgina (MediaBox, CropBox) abans d’afegir contingut per garantir un espai de coordenades correcte.
- Crida
Savenomés una vegada després de totes les modificacions — les guardades repetides són més lentes però segures. - Utilitza
PageCollection.Accept(AnnotationSelector)per processar en lot les anotacions a totes les pàgines.
Problemes comuns
| Problema | Causa | Solució |
|---|---|---|
Document.Open llança una excepció amb PDF vàlid | El fitxer està encriptat amb una contrasenya | Proporcioneu el paràmetre de contrasenya al constructor |
| El recompte de pàgines és 0 després de la construcció | El nou Document() comença buit | Crideu doc.Pages.Add() per afegir una pàgina en blanc |
| El fitxer desat és més gran del que s’esperava | Imatges o tipografies incrustades diverses vegades | Utilitzeu l’optimització (vegeu la guia de Conversió i Optimització) |
Pages[0] llança un error d’índex | Les pàgines comencen a 1, no a 0 | Utilitzeu Pages[1] per a la primera pàgina |
Preguntes freqüents
Com puc fusionar dos documents PDF?
Utilitzeu PdfFileEditor.Concatenate de l’API Facades, o copieu manualment les pàgines d’un document a un altre utilitzant PageCollection.
Puc obrir un PDF des d’una URL o d’un flux?
Sí. Llegeix el contingut de l’URL a un byte[] primer, després passa’l a
Document.Open(byte[]).
Com elimino una pàgina?
Crida doc.Pages.Delete(pageNumber) on pageNumber és basat en 1.
És Document thread-safe?
No. Cada fil hauria de treballar amb la seva pròpia instància Document.
Resum de la referència de l’API
| Class / Method | Description |
|---|---|
Document | Objecte PDF arrel; conté pàgines, metadades i camps de formulari |
Document.Open | Fàbrica estàtica per obrir un PDF des d’una matriu de bytes |
Document.Save | Serialitza el document a un fitxer o flux |
Page | Pàgina PDF única amb contingut, anotacions i geometria |
Page.SetMediaBox | Defineix la caixa de mitjans de la pàgina |
Page.SetCropBox | Defineix l’àrea de retall visible |
Page.SetRotation | Gira la pàgina 0, 90, 180 o 270 graus |
PageCollection | Col·lecció ordenada de pàgines en un document |
PageCollection.Add | Afegeix una pàgina en blanc |
OperatorCollection | Operadors de flux de contingut en brut per a una pàgina |
FileSpecification | Descriptor d’adjunt de fitxer incrustat |
ImageStamp | Segell d’imatge superposada per a pàgines |
XFormCollection | XObjects de formulari reutilitzables al document |