ドキュメントのプロパティを操作する

ドキュメントのプロパティを使用すると、ドキュメントに関するいくつかの有用な情報を保存できます。これらのプロパティは、次の 2 つのグループに分類できます。

  • ドキュメントのタイトル、作成者名、ドキュメントの統計などの値を含むシステムまたは組み込み。
  • ユーザー定義またはカスタム。ユーザーが名前と値の両方を定義できる名前と値のペアとして提供されます。

API とバージョン番号に関する情報が出力ドキュメントに直接書き込まれることを知っておくと便利です。たとえば、ドキュメントを PDF に変換すると、Aspose.Words は「アプリケーション」フィールドに「Aspose.Words」を入力し、「PDF プロデューサー」フィールドに「Aspose.Words for .NET YY.MN」を入力します。ここで、YY.M.N は変換に使用される Aspose.Words のバージョンです。 。詳細については、「出力ドキュメントに含まれるジェネレーターまたはプロデューサーの名前」を参照してください。

ドキュメントのプロパティにアクセスする

Aspose.Words でドキュメントのプロパティにアクセスするには、次を使用します。

built_in_document_propertiescustom_document_propertiesDocumentProperty オブジェクトのコレクションです。これらのオブジェクトは、インデクサー プロパティを通じて名前またはインデックスによって取得できます。

さらに、built_in_document_properties は、適切なタイプの値を返す入力されたプロパティのセットを通じてドキュメント プロパティへのアクセスを提供します。 custom_document_properties を使用すると、ドキュメントのプロパティをドキュメントに追加または削除できます。

DocumentProperty クラスを使用すると、ドキュメント プロパティの名前、値、およびタイプを取得できます。 value はオブジェクトを返しますが、特定の型に変換されたプロパティ値を取得できる一連のメソッドがあります。プロパティの型がわかったら、DocumentProperty.__str__DocumentProperty.to_int などの DocumentProperty.to_XXX メソッドの 1 つを使用して、適切な型の値を取得できます。

次のコード例は、ドキュメント内のすべての組み込みプロパティとカスタム プロパティを列挙する方法を示しています。

# 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 では、「ファイル → プロパティ」メニューを使用してドキュメントのプロパティにアクセスできます。

/words/python-net/work-with-document-properties/work-with-document-properties-1.png

ドキュメントのプロパティの追加または削除

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 を返します。

次のコード例は、カスタム プロパティへのリンクを構成する方法を示しています。

# 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")