Gestion de documents

Gestion de documents

Gestion de documents

Document est l’objet racine dans Aspose.PDF FOSS pour .NET. Il représente un fichier PDF complet et fournit l’accès aux pages, aux métadonnées, aux champs de formulaire, et à toutes les autres structures PDF. Ouvrez les fichiers existants avec Document.Open et créez de nouveaux avec le constructeur Document.


Ouverture et création de 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");

Travailler avec des pages

PageCollection gère les pages du document. Accédez aux pages par indice basé sur 1, ajoutez de nouvelles pages ou supprimez les pages existantes.

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;

Géométrie de la page

Chaque page définit plusieurs boîtes englobantes. Utilisez les méthodes setter sur Page pour les ajuster.

var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);

Enregistrement des documents

Enregistrez dans un chemin de fichier, un flux ou un tableau d’octets.

// Save to file
doc.Save("output.pdf");

// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);

Pièces jointes

FileSpecification représente les pièces jointes de fichiers incorporés dans un PDF.

var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);

Tampons d’image

ImageStamp superpose une image raster sur une page à une position spécifiée.

var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");

Collections d’opérateurs

OperatorCollection sur chaque page contient les opérateurs bruts du flux de contenu. Utilisez‑le pour l’inspection ou la manipulation de contenu à bas niveau.

var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
    // Inspect each operator
}

Conseils et meilleures pratiques

  • Enveloppez Document dans une instruction using pour libérer rapidement les poignées de fichier.
  • Utilisez Document.Open(byte[]) pour les flux de travail en mémoire afin d’éviter les problèmes de verrouillage de fichiers.
  • Modifiez les boîtes de page (MediaBox, CropBox) avant d’ajouter du contenu afin d’assurer un espace de coordonnées correct.
  • Appelez Save une seule fois après toutes les modifications — les sauvegardes répétées sont plus lentes mais sûres.
  • Utilisez PageCollection.Accept(AnnotationSelector) pour traiter par lots les annotations sur toutes les pages.

Problèmes courants

IssueCauseFix
Document.Open lève une exception sur un PDF valideLe fichier est chiffré avec un mot de passeFournir le paramètre de mot de passe dans le constructeur
Le nombre de pages est 0 après la constructionLe nouveau Document() commence videAppeler doc.Pages.Add() pour ajouter une page vierge
Le fichier enregistré est plus volumineux que prévuImages ou polices incorporées plusieurs foisUtiliser l’optimisation (voir le guide Conversion et Optimisation)
Pages[0] lève une erreur d’indexLes pages sont indexées à partir de 1, pas de 0Utiliser Pages[1] pour la première page

FAQ

Comment fusionner deux documents PDF ?

Utilisez PdfFileEditor.Concatenate de l’API Facades, ou copiez manuellement des pages d’un document à un autre en utilisant PageCollection.

Puis‑je ouvrir un PDF à partir d’une URL ou d’un flux ?

Oui. Lisez le contenu de l’URL dans un byte[] d’abord, puis passez‑le à Document.Open(byte[]).

Comment supprimer une page ?

Appelez doc.Pages.Delete(pageNumber)pageNumber commence à 1.

Le Document est‑il thread-safe ?

Non. Chaque thread doit travailler avec sa propre instance Document.


Résumé de la référence API

Class / MethodDescription
DocumentObjet PDF racine ; contient les pages, les métadonnées et les champs de formulaire
Document.OpenFabrique statique pour ouvrir un PDF à partir d’un tableau d’octets
Document.SaveSérialiser le document vers un fichier ou un flux
PagePage PDF unique avec contenu, annotations et géométrie
Page.SetMediaBoxDéfinir la boîte média de la page
Page.SetCropBoxDéfinir la zone de recadrage visible
Page.SetRotationFaire pivoter la page de 0, 90, 180 ou 270 degrés
PageCollectionCollection ordonnée de pages dans un document
PageCollection.AddAjouter une page vierge
OperatorCollectionOpérateurs bruts du flux de contenu pour une page
FileSpecificationDescripteur de pièce jointe de fichier intégré
ImageStampCachet d’image superposé pour les pages
XFormCollectionXObjects de formulaire réutilisables dans le document

Voir aussi

 Français