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

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

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

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) за пакетна обработка на анотациите във всички страници.

Общи проблеми

ПроблемПричинаРешение
Document.Open хвърля изключение при валиден PDFФайлът е криптиран с паролаПредайте параметъра за парола в конструктора
Броят на страниците е 0 след създаванеНовият Document() започва празенИзвикайте doc.Pages.Add(), за да добавите празна страница
Записаният файл е по-голям от очакванотоИзображения или шрифтове са вградени многократноИзползвайте оптимизация (вижте ръководството за Конвертиране и оптимизация)
Pages[0] хвърля грешка с индексСтраниците са номерирани от 1, а не от 0Използвайте Pages[1] за първата страница

ЧЗВ

Как да обединя два PDF документа?

Използвайте PdfFileEditor.Concatenate от Facades API, или ръчно копирайте страници от един документ в друг, като използвате PageCollection.

Мога ли да отворя PDF от URL или поток?

Да. Прочетете съдържанието на URL в byte[] първо, след това го предайте на Document.Open(byte[]).

Как да изтрия страница?

Извикайте doc.Pages.Delete(pageNumber), където pageNumber е 1‑базирано.

Документът е безопасен за многопоточност?

Не. Всяка нишка трябва да работи със собствената си Document инстанция.


Обобщение на справочника

Class / MethodDescription
DocumentRoot 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‑и за формуляри в документа

Вижте също

 Български