Gestion de documents principale
Gestion de documents principale
La classe Document est le point d’entrée principal pour Aspose.PDF FOSS pour .NET. Elle implémente IDisposable et doit être utilisée dans un bloc using afin de garantir que toutes les ressources sont libérées rapidement.
Création d’un nouveau document PDF
Utilisez Document.Create() pour instancier un document PDF vide :
using Aspose.Pdf;
using var doc = Document.Create();
doc.Pages.Add();
doc.Save("new-document.pdf");Alternativement, construisez une instance Document directement avec new Document():
using Aspose.Pdf;
using var doc = new Document();
doc.Pages.Add();
doc.Save("new-document.pdf");Ouverture d’un document PDF existant
Document.Open accepte un byte[], un chemin de fichier string, ou un Stream.
Ouvrir à partir d’un tableau d’octets :
using Aspose.Pdf;
byte[] data = File.ReadAllBytes("input.pdf");
using var doc = Document.Open(data);
Console.WriteLine($"Pages: {doc.Pages.Count}");Ouvrir à partir d’un chemin de fichier :
using Aspose.Pdf;
using var doc = Document.Open("input.pdf");
Console.WriteLine($"Pages: {doc.Pages.Count}");Ouvrir depuis un Stream:
using Aspose.Pdf;
using var stream = File.OpenRead("input.pdf");
using var doc = Document.Open(stream);
Console.WriteLine($"Pages: {doc.Pages.Count}");Ouverture d’un PDF protégé par mot de passe
Passez le mot de passe en tant que deuxième argument à toute surcharge Document.Open :
using Aspose.Pdf;
using var doc = Document.Open("protected.pdf", "mypassword");Enregistrement d’un document
Document.Save écrit le document actuel vers un chemin de fichier ou un flux.Document.ToArray renvoie les octets sérialisés directement.
Enregistrer dans un fichier :
using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
doc.Pages.Add();
doc.Save("output.pdf");Enregistrer le round‑trip vers un MemoryStream (à partir de snippet_014.cs) :
using Aspose.Pdf;
var data = File.ReadAllBytes("input.pdf");
using var doc = Document.Open(data);
var page = doc.Pages[1];
var action = PdfAction.CreateJavaScript("app.alert('Round trip');");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 600, 200, 620), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());Sérialiser en tableau d’octets :
using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var bytes = doc.ToArray();
File.WriteAllBytes("output.pdf", bytes);Accès aux pages
Les pages sont accessibles via Document.Pages, qui est un PageCollection basé sur 1. Utilisez l’indice entier pour obtenir un(e) Page spécifique :
using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var page = doc.Pages[1];
Console.WriteLine($"Width: {page.Width}, Height: {page.Height}");
Console.WriteLine($"Rotation: {page.RotateDegrees}");
Console.WriteLine($"Annotations: {page.Annotations.Count}");Accéder au formulaire
Les champs AcroForm interactifs sont disponibles via Document.Form. Vérifiez null avant d’y accéder lorsque le document peut ne pas contenir de formulaire :
using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("form.pdf"));
if (doc.Form is not null)
{
foreach (var field in doc.Form.Fields)
{
Console.WriteLine($"{field.Name}: {field.Value}");
}
}Libération d’un document
Document implémente IDisposable. Utilisez toujours using ou appelez Dispose()
explicitement :
using Aspose.Pdf;
using var doc = Document.Open("input.pdf");
// doc is disposed automatically at the end of the using block.