Управління документами

Управління документами

Управління документами

Document — це кореневий об’єкт у Aspose.PDF FOSS для .NET. Він представляє повний PDF‑файл і надає доступ до сторінок, метаданих, полів форми та всіх інших PDF‑структур. Відкривайте існуючі файли за допомогою Document.Open і створюйте нові за допомогою конструктора Document.


Відкриття та створення документів

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

Робота зі сторінками

PageCollection керує сторінками документа. Доступ до сторінок за індексом, що починається з 1, додавайте нові сторінки, або видаляйте існуючі.

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;

Геометрія сторінки

Кожна сторінка визначає кілька обмежувальних рамок. Використовуйте методи‑встановлювачі на Page, щоб налаштувати їх.

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

Збереження документів

Збережіть у шлях файлу, у потік або у масив байтів.

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

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

Вкладення файлів

FileSpecification представляє вбудовані файлові вкладення у PDF.

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

Зображення штампів

ImageStamp накладає растрове зображення на сторінку у вказаній позиції.

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

Колекції операторів

OperatorCollection на кожній сторінці містить необроблені оператори потоку вмісту. Використовуйте його для низькорівневого аналізу або маніпулювання вмістом.

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

Поради та найкращі практики

  • Обгорніть Document у вираз using, щоб швидко звільнити дескриптори файлів.
  • Використовуйте Document.Open(byte[]) для робочих процесів у пам’яті, щоб уникнути проблем із блокуванням файлів.
  • Змініть коробки сторінки (MediaBox, CropBox) перед додаванням вмісту, щоб забезпечити правильний простір координат.
  • Викликайте Save лише один раз після всіх змін — повторні збереження повільніші, але безпечні.
  • Використовуйте PageCollection.Accept(AnnotationSelector) для пакетної обробки анотацій на всіх сторінках.

Поширені проблеми

IssueCauseFix
Document.Open викликає помилку на дійсному PDFФайл зашифровано паролемПередайте параметр пароля у конструкторі
Кількість сторінок 0 після створенняНовий Document() починається порожнімВикличте doc.Pages.Add(), щоб додати порожню сторінку
Збережений файл більший, ніж очікувалосяЗображення або шрифти вбудовано кілька разівВикористайте оптимізацію (див. посібник Conversion and Optimization)
Pages[0] викликає помилку індексуСторінки нумеруються з 1, а не з 0Використайте Pages[1] для першої сторінки

FAQ

Як об’єднати два PDF‑документи?

Використовуйте PdfFileEditor.Concatenate з Facades API, або вручну копіюйте сторінки з одного документа в інший, використовуючи PageCollection.

Чи можу я відкрити PDF з URL або потоку?

Так. Спочатку прочитайте вміст URL у byte[], а потім передайте його в Document.Open(byte[]).

Як видалити сторінку?

Викличте doc.Pages.Delete(pageNumber), де pageNumber є 1‑базовим.

Чи є Document потокобезпечним?

Ні. Кожен потік повинен працювати зі своїм власним екземпляром Document.


Огляд довідника API

Class / MethodDescription
DocumentКореневий об’єкт PDF; містить сторінки, метадані та поля форми
Document.OpenСтатична фабрика для відкриття PDF з масиву байтів
Document.SaveСеріалізувати документ у файл або потік
PageОкрема сторінка PDF з вмістом, анотаціями та геометрією
Page.SetMediaBoxВизначити медіа‑коробку сторінки
Page.SetCropBoxВизначити видиму область обрізки
Page.SetRotationПовернути сторінку на 0, 90, 180 або 270 градусів
PageCollectionВпорядкована колекція сторінок у документі
PageCollection.AddДодати порожню сторінку
OperatorCollectionОператори необробленого потоку вмісту для сторінки
FileSpecificationОписувач вбудованого файлу‑вкладення
ImageStampЗображення‑накладення (штамп) для сторінок
XFormCollectionБагаторазові XObject‑форми у документі

Див. також

 Українська