Метаданные и утилиты

Метаданные и утилиты

Метаданные и утилиты

Aspose.PDF FOSS for .NET включает утилитные классы для доступа к метаданным, координатной геометрии, коллекций изображений и артефактов уровня страниц. Эти строительные блоки поддерживают операции более высокого уровня по всей библиотеке.


XMP‑метаданные

Metadata в документе предоставляет доступ к потоку метаданных XMP. Читать и записывать стандартные или пользовательские свойства XMP.

using var doc = Document.Open(pdfBytes);

// Read existing metadata
foreach (var entry in doc.Metadata)
{
    Console.WriteLine($"{entry.Key}: {entry.Value}");
}

// Set a custom property
doc.Metadata.Add("xmp:CustomProp", new XmpValue("custom value"));
doc.Save("with-metadata.pdf");

Координатная геометрия

Rectangle и Matrix используются по всему API для позиционирования и трансформации.

var rect = new Rectangle(72, 700, 300, 720);
bool inside = rect.ContainsPoint(150, 710);

// Transformation matrix (translate by 100, 200)
var matrix = new Matrix(1, 0, 0, 1, 100, 200);

Операции с коллекцией страниц

PageCollection поддерживает индексацию, итерацию и принятие паттерна посетителя.

using var doc = Document.Open(pdfBytes);

for (int i = 1; i <= doc.Pages.Count; i++)
{
    var page = doc.Pages[i];
}

Коллекции изображений

XImageCollection управляет изображениями, встроенными в ресурсы страницы. XImage предоставляет методы для проверки свойств изображения.

var images = doc.Pages[1].Resources.Images;
foreach (var img in images)
{
    Console.WriteLine($"Color type: {img.GetColorType()}");
}

Артефакты

Artifact представляет элементы, не являющиеся содержимым, такие как водяные знаки, колонтитулы и нижние колонтитулы. Используйте артефакты для нумерации страниц и декоративных элементов.

var artifact = new Artifact(ArtifactType.Watermark);
artifact.SetPageNumberReplacementString("Page {0}");

Советы и лучшие практики

  • Ключи метаданных XMP соответствуют спецификациям Dublin Core и XMP — используйте стандартные префиксы пространств имён.
  • Rectangle координаты задаются в единицах пользовательского пространства PDF (1/72 дюйма), с началом в левом нижнем углу.
  • Используйте Matrix для affine transformations: translation, rotation, scaling, and shearing.
  • XmpValue поддерживает типы string, integer, double, date и array.
  • Artifacts являются structural elements — они не появляются в accessibility tree traversals.

Распространённые проблемы

ПроблемаПричинаРешение
Ключ метаданных не найденКлюч использует другой префикс пространства имёнСначала перечислите все ключи, чтобы найти правильный префикс
Координаты прямоугольника выглядят инвертированнымиНачало координат PDF находится в левом нижнем углу, а не в левом верхнемСоответственно скорректируйте координаты Y
Коллекция изображений пустаИзображения находятся в виде XObjects, а не в прямых ресурсах страницыПроверьте XFormCollection для вложенных ресурсов изображений

Часто задаваемые вопросы

Как прочитать заголовок документа из метаданных?

Получите доступ к doc.Metadata["dc:title"] для свойства заголовка Dublin Core.

Могу ли я добавить артефакт водяного знака?

Да. Создайте Artifact с типом Watermark и добавьте его на страницу.

Какую систему координат использует Rectangle?

PDF user-space: начало в нижнем левом углу, единицы измерения — 1/72 дюйма. Стандартный лист US Letter имеет размеры 612 × 792 единиц.


Сводка справки API

Class / MethodDescription
MetadataСловарь XMP‑метаданных в документе
XmpValueТипизированный оболочный класс для значений свойств XMP
RectangleОсиально‑выравненный ограничивающий прямоугольник (llx, lly, urx, ury)
Rectangle.ContainsPointПроверка, находится ли точка внутри прямоугольника
Matrix2‑мерная аффинная матрица преобразования
Matrix.TranslateСоздание матрицы переноса
PageCollectionУпорядоченная коллекция страниц с индексацией, начинающейся с 1
XImageCollectionРесурсы изображений на странице
XImageОдин встроенный образ с определением типа цвета
ArtifactЭлемент страницы, не являющийся содержимым (водяной знак, верхний/нижний колонтитул)
Artifact.SetPageNumberReplacementStringШаблон артефактов нумерации страниц

См. также

 Русский