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

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

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

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 для афінних перетворень: переміщення, обертання, масштабування та зрізання.
  • XmpValue підтримує типи string, integer, double, date та array.
  • Артефакти є структурними елементами — вони не з’являються у обходах дерева доступності.

Загальні проблеми

ПроблемаПричинаВиправлення
Не знайдено ключ метаданихКлюч використовує інший префікс простору іменСпочатку перелічіть усі ключі, щоб знайти правильний префікс
Координати прямокутника здаються інвертованимиПочаток 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Перевірка, чи знаходиться точка всередині прямокутника
Matrix2D матриця афінного перетворення
Matrix.TranslateСтворити матрицю трансляції
PageCollectionВпорядкована колекція сторінок з індексацією, починаючи з 1
XImageCollectionРесурси зображень на сторінці
XImageОдне вбудоване зображення з визначенням типу кольору
ArtifactЕлемент сторінки, що не є вмістом (водяний знак, верхній колонтитул, нижній колонтитул)
Artifact.SetPageNumberReplacementStringШаблон для артефактів номеру сторінки

Див. також

 Українська