Работа с текстовым документом
В этой статье мы узнаем, какие опции могут быть полезны для работы с текстовым документом через Aspose.Words. Пожалуйста, обратите внимание, что это не полный список доступных опций, а лишь пример работы с некоторыми из них.
Добавление двунаправленных меток
Вы можете использовать свойство add_bidi_marks, чтобы указать, следует ли добавлять двунаправленные метки перед каждым запуском BiDi при экспорте в обычный текстовый формат. Aspose.Words вставляет символ Юникода ‘RIGHT-TO-LEFT MARK’ (U+200F) перед каждым двунаправленным символом Run в тексте. Эта опция соответствует опции “Добавить двунаправленные метки” в диалоге преобразования файлов 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 предоставляет свойство document_direction в классе TxtLoadOptions для определения направления текста (RTL / LTR) в документе. Это свойство задает или возвращает направление текста документа, указанное в перечислении 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 используется для указания символа, который будет использоваться для отступов на уровнях списка, и для определения количества символов, которые будут использоваться в качестве отступа на одном уровне списка. Значение свойства character по умолчанию равно ‘\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) |