Gestió de documents

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 Document en una declaració using per 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 Save nomé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

ProblemaCausaSolució
Document.Open llança una excepció amb PDF vàlidEl fitxer està encriptat amb una contrasenyaProporcioneu el paràmetre de contrasenya al constructor
El recompte de pàgines és 0 després de la construccióEl nou Document() comença buitCrideu doc.Pages.Add() per afegir una pàgina en blanc
El fitxer desat és més gran del que s’esperavaImatges o tipografies incrustades diverses vegadesUtilitzeu l’optimització (vegeu la guia de Conversió i Optimització)
Pages[0] llança un error d’índexLes pàgines comencen a 1, no a 0Utilitzeu 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 / MethodDescription
DocumentObjecte PDF arrel; conté pàgines, metadades i camps de formulari
Document.OpenFàbrica estàtica per obrir un PDF des d’una matriu de bytes
Document.SaveSerialitza el document a un fitxer o flux
PagePàgina PDF única amb contingut, anotacions i geometria
Page.SetMediaBoxDefineix la caixa de mitjans de la pàgina
Page.SetCropBoxDefineix l’àrea de retall visible
Page.SetRotationGira la pàgina 0, 90, 180 o 270 graus
PageCollectionCol·lecció ordenada de pàgines en un document
PageCollection.AddAfegeix una pàgina en blanc
OperatorCollectionOperadors de flux de contingut en brut per a una pàgina
FileSpecificationDescriptor d’adjunt de fitxer incrustat
ImageStampSegell d’imatge superposada per a pàgines
XFormCollectionXObjects de formulari reutilitzables al document

Vegeu també

 Català