Gestión Central de Documentos
Gestión de Documentos Central
La clase Document es el punto de entrada principal para Aspose.PDF FOSS para .NET. Implementa IDisposable y debe usarse en un bloque using para garantizar que todos los recursos se liberen rápidamente.
Crear un nuevo documento PDF
Utilice Document.Create() para instanciar un documento PDF vacío:
using Aspose.Pdf;
using var doc = Document.Create();
doc.Pages.Add();
doc.Save("new-document.pdf");Alternativamente, construya una instancia Document directamente con new Document():
using Aspose.Pdf;
using var doc = new Document();
doc.Pages.Add();
doc.Save("new-document.pdf");Abrir un documento PDF existente
Document.Open acepta un byte[], una ruta de archivo string, o un Stream.
Abrir desde una matriz de bytes:
using Aspose.Pdf;
byte[] data = File.ReadAllBytes("input.pdf");
using var doc = Document.Open(data);
Console.WriteLine($"Pages: {doc.Pages.Count}");Abrir desde una ruta de archivo:
using Aspose.Pdf;
using var doc = Document.Open("input.pdf");
Console.WriteLine($"Pages: {doc.Pages.Count}");Abrir desde un Stream:
using Aspose.Pdf;
using var stream = File.OpenRead("input.pdf");
using var doc = Document.Open(stream);
Console.WriteLine($"Pages: {doc.Pages.Count}");Abrir un PDF protegido con contraseña
Pase la contraseña como segundo argumento a cualquier sobrecarga Document.Open:
using Aspose.Pdf;
using var doc = Document.Open("protected.pdf", "mypassword");Guardando un documento
Document.Save escribe el documento actual en una ruta de archivo o flujo.Document.ToArray devuelve los bytes serializados directamente.
Guardar en un archivo:
using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
doc.Pages.Add();
doc.Save("output.pdf");Guardar ida y vuelta a un MemoryStream (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());Serializar a una matriz de bytes:
using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var bytes = doc.ToArray();
File.WriteAllBytes("output.pdf", bytes);Accediendo a páginas
Las páginas se acceden a través de Document.Pages, que es unPageCollection basado en 1. Use el índice entero para obtener un Page específico:
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}");Accediendo al formulario
Los campos interactivos de AcroForm están disponibles a través de Document.Form. Verifique null antes de acceder cuando el documento pueda no contener un formulario:
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}");
}
}Liberar un documento
Document implementa IDisposable. Siempre use using o llame a Dispose() explícitamente:
using Aspose.Pdf;
using var doc = Document.Open("input.pdf");
// doc is disposed automatically at the end of the using block.