Метадані та утиліти
Метадані та утиліти
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 / Method | Description |
|---|---|
Metadata | Словник метаданих XMP у документі |
XmpValue | Типізований обгортка для значень властивостей XMP |
Rectangle | Виділена прямокутна рамка, орієнтована по осях (llx, lly, urx, ury) |
Rectangle.ContainsPoint | Перевірка, чи знаходиться точка всередині прямокутника |
Matrix | 2D матриця афінного перетворення |
Matrix.Translate | Створити матрицю трансляції |
PageCollection | Впорядкована колекція сторінок з індексацією, починаючи з 1 |
XImageCollection | Ресурси зображень на сторінці |
XImage | Одне вбудоване зображення з визначенням типу кольору |
Artifact | Елемент сторінки, що не є вмістом (водяний знак, верхній колонтитул, нижній колонтитул) |
Artifact.SetPageNumberReplacementString | Шаблон для артефактів номеру сторінки |