#c# #pdf #document #docx #gembox-document
#c# #PDF #документ #docx #gembox-документ
Вопрос:
Я пытаюсь прочитать определенное свойство из файла Word с помощью GemBox.Документ, но в некоторых случаях его может не быть в документе, поэтому я получаю сообщение об ошибке.
var document = DocumentModel.Load("ovl-last.docx");
var documentProperties = document.DocumentProperties;
var ovldoctype = documentProperties.Custom["DocType"];
В примере свойств документа я заметил, что мы можем перебирать свойства. Это единственный «безопасный» способ получить свойство и предотвратить исключение, или есть другой способ проверить его существование?
Кроме того, когда я сохраняю файл DocumentModel
в формате PDF, я заметил, что получаю жестко запрограммированный «GemBox.Значение «Document XYZ» для свойства «PDF Producer». Я вижу это в: Adobe Reader -> Файл -> Свойства… -> Дополнительно -> Производитель PDF
Могу ли я изменить это на что-то другое?
Ответ №1:
Обратите внимание, что оба DocumentProperties.BuiltIn
и DocumentProperties.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»:
documentProperties.Custom.Add("Producer", "My value for PDF Producer");
document.Save("ovl-last.pdf");