Основное управление документами
Основное управление документами
Класс Document является основной точкой входа для Aspose.PDF FOSS для .NET.
Он реализует IDisposable и должен использоваться в блоке using, чтобы обеспечить
своевременное освобождение всех ресурсов.
Создание нового PDF‑документа
Используйте Document.Create() для создания пустого PDF‑документа:
using Aspose.Pdf;
using var doc = Document.Create();
doc.Pages.Add();
doc.Save("new-document.pdf");В качестве альтернативы, создайте экземпляр Document напрямую с помощью new Document():
using Aspose.Pdf;
using var doc = new Document();
doc.Pages.Add();
doc.Save("new-document.pdf");Открытие существующего PDF‑документа
Document.Open принимает byte[], путь к файлу string или Stream.
Открыть из массива байтов:
using Aspose.Pdf;
byte[] data = File.ReadAllBytes("input.pdf");
using var doc = Document.Open(data);
Console.WriteLine($"Pages: {doc.Pages.Count}");Открыть из пути к файлу:
using Aspose.Pdf;
using var doc = Document.Open("input.pdf");
Console.WriteLine($"Pages: {doc.Pages.Count}");Открыть из Stream:
using Aspose.Pdf;
using var stream = File.OpenRead("input.pdf");
using var doc = Document.Open(stream);
Console.WriteLine($"Pages: {doc.Pages.Count}");Открытие PDF, защищённого паролем
Передайте пароль в качестве второго аргумента любой перегрузке Document.Open:
using Aspose.Pdf;
using var doc = Document.Open("protected.pdf", "mypassword");Сохранение документа
Document.Save записывает текущий документ в путь файла или поток.Document.ToArray возвращает сериализованные байты напрямую.
Сохранить в файл:
using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
doc.Pages.Add();
doc.Save("output.pdf");Сохранить обратный проход в MemoryStream (из 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());Сериализовать в массив байтов:
using Aspose.Pdf;
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));
var bytes = doc.ToArray();
File.WriteAllBytes("output.pdf", bytes);Доступ к страницам
Страницы доступны через Document.Pages, который начинается с 1PageCollection. Используйте целочисленный индекс, чтобы получить конкретный 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}");Доступ к форме
Интерактивные поля AcroForm доступны через Document.Form. Проверьте null перед доступом, если документ может не содержать форму:
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}");
}
}Освобождение документа
Document реализует IDisposable. Всегда используйте using или вызывайте Dispose() явно:
using Aspose.Pdf;
using var doc = Document.Open("input.pdf");
// doc is disposed automatically at the end of the using block.