繁体   English   中英

Word 和 PDF 文件中的文档属性

[英]Document properties in Word and PDF files

我正在尝试使用GemBox.Document从 Word 文件中读取特定属性,但在某些情况下,它可能不在文档中,因此出现错误。

var document = DocumentModel.Load("ovl-last.docx");
var documentProperties = document.DocumentProperties;
var ovldoctype = documentProperties.Custom["DocType"];

文档属性示例中,我注意到我们可以遍历属性。 这是获取属性并防止异常的唯一“安全”方法,还是有另一种方法来检查它的存在?

此外,当我将DocumentModel保存为 PDF 时,我注意到我为“PDF Producer”属性获得了一个硬编码的“GemBox.Document XYZ”值。 我可以在:Adobe Reader -> File -> Properties... -> Advanced -> PDF Producer 中看到它

我可以将其更改为其他内容吗?

请注意, DocumentProperties.BuiltInDocumentProperties.Custom都是字典,因此您可以使用TryGetValue尝试检索“DocType”值或使用ContainsKey方法检查“DocType”键是否存在。

例如,这样的事情:

var document = DocumentModel.Load("ovl-last.docx");
var documentProperties = document.DocumentProperties;
if (document.DocumentProperties.Custom.TryGetValue("DocType", out object ovldoctype))
{
    // ...
}

或这个:

var document = DocumentModel.Load("ovl-last.docx");
var documentProperties = document.DocumentProperties;
if (document.DocumentProperties.Custom.ContainsKey("DocType"))
{
    var ovldoctype = documentProperties.Custom["DocType"];
    // ...
}

关于“PDF Producer”,尝试添加“Producer”属性:

documentProperties.Custom.Add("Producer", "My value for PDF Producer");
document.Save("ovl-last.pdf");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM