元数据和实用工具
元数据和实用工具
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);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 是结构元素 — 它们不会出现在可访问性树遍历中。
常见问题
| Issue | Cause | Fix |
|---|---|---|
| 未找到元数据键 | 键使用了不同的命名空间前缀 | 首先列出所有键以找到正确的前缀 |
| 矩形坐标似乎颠倒 | PDF 原点在左下角,而不是左上角 | 相应地调整 Y 坐标 |
| 图像集合为空 | 图像位于表单 XObject 中,而不是直接页面资源 | 检查 XFormCollection 以获取嵌套图像资源 |
常见问题
如何从元数据中读取文档标题?
访问 doc.Metadata["dc:title"] 以获取 Dublin Core 标题属性。
我可以添加水印工件吗?
是的。创建一个 Artifact,类型为 Watermark,并将其添加到页面。
Rectangle 使用哪种坐标系?
PDF 用户空间:原点位于左下角,单位为 1/72 英寸。标准
US Letter 页面为 612 x 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 | 页面编号工件的模板 |