XPS文档中的注释

时间:2018-07-03 13:46:34

标签: wpf xps

我正在尝试在XPS文档中添加注释。 .Net API是否可以将其读回?我需要添加XPS文件中嵌入的隐藏文本。

1 个答案:

答案 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文档的元数据:

Properties for XPS document

元数据并非严格地 hidden ,因为您可以使用上述技术在Windows中看到它,也可以通过代码访问它。但是,它没有显示在XPS文档的实际页面上,因此在查看或打印时通常不可见。