Работа со свойствами документа
Свойства документа позволяют сохранить некоторую полезную информацию о вашем документе. Эти свойства можно разделить на две группы:
- Системные или встроенные, содержащие такие значения, как название документа, имя автора, статистика документа и другие.
- Определяемые пользователем или пользовательские, предоставляемые в виде пар имя-значение, где пользователь может определить как имя, так и значение.
Полезно знать, что информация о API и номере версии записывается непосредственно в выходные документы. Например, при преобразовании документа в PDF, Aspose.Words заполняет поле “Приложение” значением “Aspose.Words”, а поле “Производитель PDF” - значением “Aspose.Words для .NET YY.M.N”, где YY.M.N это версия Aspose.Words, используемая для преобразования. Дополнительные сведения см. в разделе Название генератора или производителя, указанное в выходных документах.
Доступ к свойствам документа
Чтобы получить доступ к свойствам документа в Aspose.Words, используйте:
-
built_in_document_properties для получения встроенных свойств.
-
custom_document_properties для получения пользовательских свойств.
built_in_document_properties и custom_document_properties представляют собой коллекции объектов DocumentProperty. Эти объекты могут быть получены с помощью свойства indexer по имени или по индексу.
built_in_document_properties дополнительно предоставляет доступ к свойствам документа с помощью набора введенных свойств, которые возвращают значения соответствующего типа. custom_document_properties позволяет добавлять или удалять свойства документа из документа.
Класс DocumentProperty позволяет получить имя, значение и тип свойства документа. value возвращает объект, но существует набор методов, позволяющих преобразовать значение свойства в определенный тип. После того, как вы узнаете, к какому типу относится свойство, вы можете использовать один из методов DocumentProperty.to_XXX, таких как DocumentProperty.__str__ и DocumentProperty.to_int, чтобы получить значение соответствующего типа.
В следующем примере кода показано, как перечислить все встроенные и пользовательские свойства в документе:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document(docs_base.my_dir + "Properties.docx") | |
print("1. Document name: 0", doc.original_file_name) | |
print("2. Built-in Properties") | |
for prop in doc.built_in_document_properties : | |
print("0 : 1", prop.name, prop.value) | |
print("3. Custom Properties") | |
for prop in doc.custom_document_properties : | |
print("0 : 1", prop.name, prop.value) |
В Microsoft Word вы можете получить доступ к свойствам документа, используя меню “Файл → Свойства”.

Добавление или удаление свойств документа
Вы не можете добавлять или удалять встроенные свойства документа, используя Aspose.Words. Вы можете только изменять или обновлять их значения.
Чтобы добавить пользовательские свойства документа с помощью Aspose.Words, используйте метод add, передав имя нового свойства и значение соответствующего типа. Метод возвращает только что созданный объект DocumentProperty.
Чтобы удалить пользовательские свойства, используйте метод remove, передав ему имя свойства для удаления, или метод remove_at, чтобы удалить свойство по индексу. Вы также можете удалить все свойства, используя метод clear.
Следующий пример кода проверяет, существует ли в документе пользовательское свойство с заданным именем, и добавляет еще несколько пользовательских свойств документа:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document(docs_base.my_dir + "Properties.docx") | |
customDocumentProperties = doc.custom_document_properties | |
if (customDocumentProperties.get_by_name("Authorized") != None) : | |
return | |
customDocumentProperties.add("Authorized", True) | |
customDocumentProperties.add("Authorized By", "John Smith") | |
customDocumentProperties.add("Authorized Date", datetime.today()) | |
customDocumentProperties.add("Authorized Revision", doc.built_in_document_properties.revision_number) | |
customDocumentProperties.add("Authorized Amount", 123.45) |
В следующем примере кода показано, как удалить пользовательское свойство документа:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document(docs_base.my_dir + "Properties.docx") | |
doc.custom_document_properties.remove("Authorized Date") |
Обновление встроенных свойств документа
Aspose.Words не обновляет свойства документа автоматически, как это происходит с некоторыми свойствами Microsoft Word, но предоставляет метод для обновления некоторых статистических встроенных свойств документа. Вызовите метод update_word_count для пересчета и обновления следующих свойств:
Создайте новое пользовательское свойство, связанное с контентом
Aspose.Words предоставляет метод add_link_to_content для создания нового пользовательского свойства документа, связанного с содержимым. Это свойство возвращает только что созданный объект свойств или значение null, если значение link_source недопустимо.
В следующем примере кода показано, как настроить ссылку на пользовательское свойство:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
builder.start_bookmark("MyBookmark") | |
builder.writeln("Text inside a bookmark.") | |
builder.end_bookmark("MyBookmark") | |
# Retrieve a list of all custom document properties from the file. | |
customProperties = doc.custom_document_properties | |
# Add linked to content property. | |
customProperty = customProperties.add_link_to_content("Bookmark", "MyBookmark") | |
customProperty = customProperties.get_by_name("Bookmark") | |
isLinkedToContent = customProperty.is_link_to_content | |
linkSource = customProperty.link_source | |
customPropertyValue = customProperty.value |
Получение переменных документа
Вы можете получить набор переменных документа, используя свойство variables. Имена и значения переменных являются строками.
В следующем примере кода показано, как добавлять переменные документа и получать к ним доступ:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document(docs_base.my_dir + "Document.docx") | |
doc.variables.add("test", "test") | |
variables = "" | |
for entry in doc.variables : | |
name = entry.key | |
value = entry.value | |
if (variables == "") : | |
variables = "Name: " + name + "," + "Value: " + value | |
else : | |
variables = variables + "Name: " + name + "," + "Value: " + value | |
Удалить личную информацию из документа
Если вы хотите поделиться документом Word с другими пользователями, вы можете удалить личную информацию, такую как имя автора и компания. Для этого используйте свойство remove_personal_information, чтобы установить флаг, указывающий на то, что Microsoft Word удалит всю пользовательскую информацию из комментариев, правок и свойств документа при сохранении документа.
В следующем примере кода показано, как удалить личную информацию:
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document(docs_base.my_dir + "Properties.docx") | |
doc.remove_personal_information = True | |
doc.save(docs_base.artifacts_dir + "DocumentPropertiesAndVariables.remove_personal_information.docx") |