Práce s dokumentem

V tomto článku se dozvíme, jaké možnosti mohou být užitečné pro práci s textovým dokumentem prostřednictvím Aspose.Words. Vezměte prosím na vědomí, že to není úplný seznam dostupných možností, ale jen příklad spolupráce s některými z nich.

Přidat bi Directional Značky

Můžete použít add_bidi_marks vlastnost určit, zda přidat obousměrné značky před každým spuštěním BiDi při exportu v jednoduchém textovém formátu. Aspose.Words vloží před každý obousměrný znak Unicode ‘RIGHT-TO-LEFT MARK’ (U+200F) Run v textu. Tato volba odpovídá možnosti “Přidat obousměrné značky” v dialogu MS Word File Conversion, když exportujete do jednoduchého formátu textu. Všimněte si, že se v dialogu objevuje pouze tehdy, pokud jsou v MS Word přidány některé arabské nebo hebrejské editační jazyky.

Následující příklad kódu ukazuje, jak používat add_bidi_marks majetek. Výchozí hodnota této vlastnosti je 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)

Poznejte položky seznamu během načítání TXT

Aspose.Words může importovat položku seznamu textového souboru jako čísla seznamů nebo prostý text ve svém modelu objektu dokumentu. • detect_numbering_with_whitespaces vlastnost umožňuje určit, jak jsou očíslované položky seznamu rozpoznány při importu dokumentu z prostého textového formátu:

  • Pokud je tato volba nastavena True, Whitespace se také používají jako oddělovače čísel seznamu: algoritmus rozpoznávání seznamu pro číslování arabského stylu (1., 1.1.2.) používá symboly Whitespace i tečka (".").
  • Pokud je tato volba nastavena False, zobrazí rozpoznávací algoritmus seznam odstavců, kdy čísla seznamu končí buď tečkou, pravým držákem nebo symboly kulky (např. “•,” “*,” “-” nebo “o”).

Následující příklad kódu ukazuje, jak používat tuto vlastnost:

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

Manipulace vedoucími a trailingové prostory během načítání TXT

Během načítání TXT souboru můžete ovládat způsob manipulace s vedoucími a stezkami. Přední prostory by mohly být ořezány, konzervovány nebo přeměněny na odsazení a mohly by být ořezány nebo zachovány.

Následující příklad kódu ukazuje, jak při importu TXT souboru vystřihnout vedoucí a stopovací prostory:

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

Detekovat dokument Směr textu

Aspose.Words poskytuje document_direction majetek v TxtLoadOptions třída pro detekci směru textu (RTL / LTR) v dokumentu. Tato vlastnost nastavuje nebo získává textové pokyny dokumentu uvedené v DocumentDirection vyjmenování. Výchozí hodnota je zleva doprava.

Následující příklad kódu ukazuje, jak zjistit směr textu dokumentu při importu TXT souboru:

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

Export hlavičky a zápatí ve výstupu TXT

Pokud chcete exportovat hlavičku a zápatí ve výstupním TXT dokumentu, můžete použít export_headers_footers_mode majetek. Tato vlastnost určuje způsob exportu hlaviček a zápatí do textového formátu.

Následující příklad kódu ukazuje, jak exportovat hlavičky a zápatí do jednoduchého formátu textu:

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)

Exportovat seznam odsazení ve výstupu TXT

Aspose.Words zavedeno TxtListIndentation třída, která umožňuje určit, jak jsou úrovně seznamu odsazeny při exportu do jednoduchého formátu textu. Při práci s TxtSaveOption, vá list_indentation vlastnost je poskytována pro upřesnění znaku, který má být použit pro odsazení úrovní seznamu a počet uvádějící, kolik znaků použít jako odsazení na jednu úroveň seznamu. Výchozí hodnota vlastnosti znaku je ‘\0’ udávající, že neexistuje odsazení. U vlastnosti počítání je výchozí hodnota 0, což znamená, že není vsazena.

Použití znaku karty

Následující příklad kódu ukazuje, jak exportovat úrovně seznamu pomocí znaků karty:

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

Použití prostorového znaku

Následující příklad kódu ukazuje, jak exportovat úrovně seznamu pomocí znaků mezer:

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