テキストドキュメントの操作

この記事では、Aspose.Words を介してテキスト ドキュメントを操作する場合に役立つオプションを学びます。これは利用可能なオプションの完全なリストではなく、それらの一部を使用する例にすぎないことに注意してください。

双方向マークの追加

add_bidi_marks プロパティを使用して、プレーン テキスト形式でエクスポートするときに各 BiDi を実行する前に双方向マークを追加するかどうかを指定できます。 Aspose.Words は、テキスト内の各双方向 Run の前に Unicode 文字「RIGHT-TO-LEFT MARK」(U+200F) を挿入します。このオプションは、プレーン テキスト形式にエクスポートする場合の MS Word ファイル変換ダイアログの [双方向マークを追加] オプションに対応します。 MS Word にアラビア語またはヘブライ語の編集言語が追加されている場合にのみダイアログに表示されることに注意してください。

次のコード例は、add_bidi_marks プロパティの使用方法を示しています。このプロパティのデフォルト値は False です。

# 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.writeln("Hello world!")
builder.paragraph_format.bidi = True
builder.writeln("שלום עולם!")
builder.writeln("مرحبا بالعالم!")
saveOptions = aw.saving.TxtSaveOptions()
saveOptions.add_bidi_marks = True
doc.save(docs_base.artifacts_dir + "WorkingWithTxtSaveOptions.add_bidi_marks.txt", saveOptions)

TXTのロード中にリスト項目を認識する

Aspose.Words は、テキスト ファイルのリスト項目をリスト番号またはプレーン テキストとしてドキュメント オブジェクト モデルにインポートできます。 detect_numbering_with_whitespaces プロパティを使用すると、ドキュメントをプレーン テキスト形式からインポートするときに番号付きリスト項目をどのように認識するかを指定できます。

  • このオプションが True に設定されている場合、空白もリスト番号の区切り文字として使用されます。アラビア語形式の番号付け (1.、1.1.2.) のリスト認識アルゴリズムでは、空白とドット (「.」) 記号の両方が使用されます。
  • このオプションが False に設定されている場合、リスト認識アルゴリズムは、リスト番号がドット、右括弧、または箇条書き記号 (「•」、「*」、「-」、または「o」など) で終わる場合にリストの段落を検出します。

次のコード例は、このプロパティの使用方法を示しています。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
# Create a plaintext document in the form of a string with parts that may be interpreted as lists.
# Upon loading, the first three lists will always be detected by Aspose.words,
# and List objects will be created for them after loading.
textDoc = """Full stop delimiters:\n
1. First list item 1\n
2. First list item 2\n
3. First list item 3\n\n
Right bracket delimiters:\n
1) Second list item 1\n
2) Second list item 2\n
3) Second list item 3\n\n
Bullet delimiters:\n
• Third list item 1\n
• Third list item 2\n
• Third list item 3\n\n
Whitespace delimiters:\n
1 Fourth list item 1\n
2 Fourth list item 2\n
3 Fourth list item 3"""
# The fourth list, with whitespace inbetween the list number and list item contents,
# will only be detected as a list if "DetectNumberingWithWhitespaces" in a LoadOptions object is set to true,
# to avoid paragraphs that start with numbers being mistakenly detected as lists.
loadOptions = aw.loading.TxtLoadOptions()
loadOptions.detect_numbering_with_whitespaces = True
# Load the document while applying LoadOptions as a parameter and verify the result.
doc = aw.Document(io.BytesIO(textDoc.encode("utf-8")), loadOptions)
doc.save(docs_base.artifacts_dir + "WorkingWithTxtLoadOptions.detect_numbering_with_whitespaces.docx")

TXTのロード中に先頭と末尾のスペースを処理する

TXT ファイルのロード中に先頭と末尾のスペースを処理する方法を制御できます。先頭のスペースはトリミング、保存、またはインデントに変換でき、末尾のスペースはトリミングまたは保存できます。

次のコード例は、TXT ファイルのインポート中に先頭と末尾のスペースをトリミングする方法を示しています。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
textDoc = " Line 1 \n" + " Line 2 \n" + " Line 3 "
loadOptions = aw.loading.TxtLoadOptions()
loadOptions.leading_spaces_options = aw.loading.TxtLeadingSpacesOptions.TRIM
loadOptions.trailing_spaces_options = aw.loading.TxtTrailingSpacesOptions.TRIM
f = io.BytesIO(textDoc.encode("utf-8"))
doc = aw.Document(f, loadOptions)
doc.save(docs_base.artifacts_dir + "WorkingWithTxtLoadOptions.handle_spaces_options.docx")

ドキュメントのテキスト方向の検出

Aspose.Words は、ドキュメント内のテキストの方向 (RTL / LTR) を検出するために、TxtLoadOptions クラスに document_direction プロパティを提供します。このプロパティは、DocumentDirection 列挙で提供されるドキュメント テキストの方向を設定または取得します。デフォルト値は左から右です。

次のコード例は、TXT ファイルのインポート中にドキュメントのテキストの方向を検出する方法を示しています。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
loadOptions = aw.loading.TxtLoadOptions()
loadOptions.document_direction = aw.loading.DocumentDirection.AUTO
doc = aw.Document(docs_base.my_dir + "Hebrew text.txt", loadOptions)
paragraph = doc.first_section.body.first_paragraph
print(paragraph.paragraph_format.bidi)
doc.save(docs_base.artifacts_dir + "WorkingWithTxtLoadOptions.document_text_direction.docx")

出力TXTでヘッダーとフッターをエクスポート

出力TXTドキュメントのヘッダーとフッターをエクスポートしたい場合は、export_headers_footers_modeプロパティを使用できます。このプロパティは、ヘッダーとフッターをプレーン テキスト形式にエクスポートする方法を指定します。

次のコード例は、ヘッダーとフッターをプレーン テキスト形式にエクスポートする方法を示しています。

doc = aw.Document(docs_base.my_dir + "Document.docx")

options = aw.saving.TxtSaveOptions()
options.save_format = aw.SaveFormat.TEXT

# All headers and footers are placed at the very end of the output document.
options.export_headers_footers_mode = aw.saving.TxtExportHeadersFootersMode.ALL_AT_END
doc.save(docs_base.artifacts_dir + "WorkingWithTxtSaveOptions.export_headers_footers_mode_A.txt", options)

# Only primary headers and footers are exported at the beginning and end of each section.
options.export_headers_footers_mode = aw.saving.TxtExportHeadersFootersMode.PRIMARY_ONLY
doc.save(docs_base.artifacts_dir + "WorkingWithTxtSaveOptions.export_headers_footers_mode_B.txt", options)

# No headers and footers are exported.
options.export_headers_footers_mode = aw.saving.TxtExportHeadersFootersMode.NONE
doc.save(docs_base.artifacts_dir + "WorkingWithTxtSaveOptions.export_headers_footers_mode_C.txt", options)

出力 TXT のエクスポート リストのインデント

Aspose.Words では、プレーン テキスト形式にエクスポートする際にリスト レベルのインデント方法を指定できる TxtListIndentation クラスが導入されました。 TxtSaveOption を操作する場合、リスト レベルのインデントに使用する文字を指定するための list_indentation プロパティと、1 つのリスト レベルごとにインデントとして使用する文字数を指定する count が提供されます。文字プロパティのデフォルト値は「\0」で、インデントがないことを示します。 count プロパティのデフォルト値は 0 で、インデントなしを意味します。

タブ文字の使用

次のコード例は、タブ文字を使用してリスト レベルをエクスポートする方法を示しています。

# 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)
# Create a list with three levels of indentation.
builder.list_format.apply_number_default()
builder.writeln("Item 1")
builder.list_format.list_indent()
builder.writeln("Item 2")
builder.list_format.list_indent()
builder.write("Item 3")
saveOptions = aw.saving.TxtSaveOptions()
saveOptions.list_indentation.count = 1
#saveOptions.list_indentation.character = '\t'
doc.save(docs_base.artifacts_dir + "WorkingWithTxtSaveOptions.use_tab_character_per_level_for_list_indentation.txt", saveOptions)

スペース文字の使用

次のコード例は、スペース文字を使用してリスト レベルをエクスポートする方法を示しています。

# 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)
# Create a list with three levels of indentation.
builder.list_format.apply_number_default()
builder.writeln("Item 1")
builder.list_format.list_indent()
builder.writeln("Item 2")
builder.list_format.list_indent()
builder.write("Item 3")
saveOptions = aw.saving.TxtSaveOptions()
saveOptions.list_indentation.count = 3
#saveOptions.list_indentation.character = ' '
doc.save(docs_base.artifacts_dir + "WorkingWithTxtSaveOptions.use_space_character_per_level_for_list_indentation.txt", saveOptions)