使用 .NET 从 EPS 文件获取 XMP 元数据
您可以使用 Metadata Web 应用检查 Aspose.Page XMP Metadata 的质量。
为了从 EPS 文件中提取 XMP 元数据,需要执行以下步骤:
- 为 EPS 文件打开一个
FileStream(或using语句),例如using var stream = new FileStream("sample.eps", FileMode.Open);。 - 从流中创建一个
PsDocument:var document = new PsDocument(stream);。 - 通过
XmpMetadata xmp = document.XmpMetadata;检索 XMP 元数据。如果 EPS 文件不包含 XMP,Aspose 会创建一个新的XmpMetadata对象,并填充 PS 注释。 - 访问元数据属性(例如
xmp.Title、xmp.Author、xmp.Description)以读取其值。
以下代码片段展示了如何在 C# 中从 EPS 文件中提取 XMP 元数据:
1// Get XMP metadata from EPS document.
2
3// Create PsDocument instance from file
4PsDocument document = new PsDocument(DataDir + "get_input.eps");
5
6// Get XMP metadata. If EPS file doesn't contain XMP metadata we get new one filled with values from PS metadata comments (%%Creator, %%CreateDate, %%Title etc)
7XmpMetadata xmp = document.GetXmpMetadata();
8
9// Get "CreatorTool" value
10if (xmp.Contains("xmp:CreatorTool"))
11 Console.WriteLine("CreatorTool: " + xmp["xmp:CreatorTool"].ToStringValue());
12
13// Get "CreateDate" value
14if (xmp.Contains("xmp:CreateDate"))
15 Console.WriteLine("CreateDate: " + xmp["xmp:CreateDate"].ToStringValue());
16
17// Get a width of a thumbnail image if exists
18if (xmp.Contains("xmp:Thumbnails") && xmp["xmp:Thumbnails"].IsArray)
19{
20 XmpValue val = xmp["xmp:Thumbnails"].ToArray()[0];
21 if (val.IsNamedValues && val.ToDictionary().ContainsKey("xmpGImg:width"))
22 Console.WriteLine($"Thumbnail Width: {val.ToDictionary()["xmpGImg:width"].ToInteger()}");
23}
24
25// Get "format" value
26if (xmp.Contains("dc:format"))
27 Console.WriteLine("Format: " + xmp["dc:format"].ToStringValue());
28
29// Get "DocumentID" value
30if (xmp.Contains("xmpMM:DocumentID"))
31 Console.WriteLine("DocumentID: " + xmp["xmpMM:DocumentID"].ToStringValue());在我们的 Metadata 应用程序上在线评估 XMP 元数据。
您可以从 GitHub下载示例和数据文件。