Gestione Documentale Core

Gestione Documentale Core

Gestione Documenti Core

La classe Document è il punto di ingresso principale per Aspose.PDF FOSS per .NET.
Implementa IDisposable e dovrebbe essere utilizzata in un blocco using per garantire che tutte le risorse vengano rilasciate tempestivamente.


Creazione di un nuovo documento PDF

Usa Document.Create() per istanziare un documento PDF vuoto:

using Aspose.Pdf;
using var doc = Document.Create();
doc.Pages.Add();
doc.Save("new-document.pdf");

In alternativa, costruisci un’istanza Document direttamente con new Document():

using Aspose.Pdf;
using var doc = new Document();
doc.Pages.Add();
doc.Save("new-document.pdf");

Apertura di un documento PDF esistente

Document.Open accetta un byte[], un percorso file string, o un Stream.

Apri da un array di byte:

using Aspose.Pdf;
byte[] data = File.ReadAllBytes("input.pdf");
using var doc = Document.Open(data);
Console.WriteLine($"Pages: {doc.Pages.Count}");

Apri da un percorso file:

using Aspose.Pdf;
using var doc = Document.Open("input.pdf");
Console.WriteLine($"Pages: {doc.Pages.Count}");

Apri da un Stream:

using Aspose.Pdf;
using var stream = File.OpenRead("input.pdf");
using var doc = Document.Open(stream);
Console.WriteLine($"Pages: {doc.Pages.Count}");

Apertura di un PDF protetto da password

Passa la password come secondo argomento a qualsiasi overload Document.Open:

using Aspose.Pdf;
using var doc = Document.Open("protected.pdf", "mypassword");

Salvataggio di un documento

Document.Save scrive il documento corrente in un percorso file o stream.
Document.ToArray restituisce direttamente i byte serializzati.

Salva su un file:

using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
doc.Pages.Add();
doc.Save("output.pdf");

Salva il round-trip in un MemoryStream (da 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());

Serializza in un array di byte:

using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var bytes = doc.ToArray();
File.WriteAllBytes("output.pdf", bytes);

Accesso alle pagine

Le pagine sono accessibili tramite Document.Pages, che è un PageCollection basato su 1.
Usa l’indice intero per ottenere uno specifico Page:

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}");

Accesso al modulo

I campi AcroForm interattivi sono disponibili tramite Document.Form. Verifica null prima di accedere quando il documento potrebbe non contenere un modulo:

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}");
    }
}

Eliminazione di un documento

Document implementa IDisposable. Usa sempre using o chiama Dispose() esplicitamente:

using Aspose.Pdf;
using var doc = Document.Open("input.pdf");
// doc is disposed automatically at the end of the using block.

Vedi anche

 Italiano