我正在尝试在XPS文档中添加注释。 .Net API是否可以将其读回?我需要添加XPS文件中嵌入的隐藏文本。
答案 0 :(得分:5)
您可以使用XpsDocument
class及其CoreDocumentProperties
property将元数据添加到XPS文档文件中。
我不确定这是否可以满足您的要求,但这是如何做到的。
using System.IO;
using System.IO.Packaging;
using System.Windows.Xps.Packaging;
namespace StackOverflow
{
class Program
{
static void Main(string[] args)
{
const string XpsFilePath = @" ... path to XPS file ... ";
using (var document = new XpsDocument(XpsFilePath, FileAccess.ReadWrite))
{
PackageProperties properties = document.CoreDocumentProperties;
properties.Title = "Some title";
properties.Subject = "Some subject line";
properties.Keywords = "stackoverflow xps";
properties.Category = "Some category";
properties.Description = "Some kind of document";
properties.Creator = "me";
properties.LastModifiedBy = "me again";
properties.Revision = "Rev A";
properties.Version = "v1";
}
// XpsDocument is from System.Windows.Xps.Packaging, in ReachFramework assembly
// PackageProperties is from System.IO.Packaging, in WindowsBase assembly
}
}
}
您可以通过创建具有读取权限的新XpsDocument
来通过代码访问此信息。
using (var document = new XpsDocument(XpsFilePath, FileAccess.Read))
{
PackageProperties properties = document.CoreDocumentProperties;
System.Console.WriteLine(properties.Title);
// etc...
}
通过右键单击文件,选择属性,然后显示详细信息选项卡,可以在Windows中查看XPS文档的元数据:
元数据并非严格地 hidden ,因为您可以使用上述技术在Windows中看到它,也可以通过代码访问它。但是,它没有显示在XPS文档的实际页面上,因此在查看或打印时通常不可见。