元数据和实用工具

元数据和实用工具

元数据和实用工具

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

坐标几何

RectangleMatrix 在整个 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);

Page 集合操作

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 类型。
  • Artifacts 是结构元素 — 它们不会出现在可访问性树遍历中。

常见问题

IssueCauseFix
未找到元数据键键使用了不同的命名空间前缀首先列出所有键以找到正确的前缀
矩形坐标似乎颠倒PDF 原点在左下角,而不是左上角相应地调整 Y 坐标
图像集合为空图像位于表单 XObject 中,而不是直接页面资源检查 XFormCollection 以获取嵌套图像资源

常见问题

如何从元数据中读取文档标题?

访问 doc.Metadata["dc:title"] 以获取 Dublin Core 标题属性。

我可以添加水印工件吗?

是的。创建一个 Artifact,类型为 Watermark,并将其添加到页面。

Rectangle 使用哪种坐标系?

PDF 用户空间:原点位于左下角,单位为 1/72 英寸。标准
US Letter 页面为 612 x 792 单位。


API 参考摘要

Class / MethodDescription
Metadata文档上的 XMP 元数据字典
XmpValueXMP 属性值的类型化包装器
Rectangle轴对齐的边界框 (llx, lly, urx, ury)
Rectangle.ContainsPoint测试点是否位于矩形内部
Matrix2D 仿射变换矩阵
Matrix.Translate创建平移矩阵
PageCollection带有 1 基索引的有序页面集合
XImageCollection页面上的图像资源
XImage带颜色类型检测的单个嵌入图像
Artifact非内容页面元素(水印、页眉、页脚)
Artifact.SetPageNumberReplacementString页面编号工件的模板

另请参阅

 中文