Praca z dokumentem tekstowym
W tym artykule dowiemy się, jakie opcje mogą się przydać podczas pracy z dokumentem tekstowym poprzez Aspose.Words. Należy pamiętać, że nie jest to pełna lista dostępnych opcji, a jedynie przykład pracy z niektórymi z nich.
Dodaj znaki dwukierunkowe
Możesz użyć właściwości add_bidi_marks, aby określić, czy dodawać znaki dwukierunkowe przed każdym uruchomieniem BiDi podczas eksportowania w formacie zwykłego tekstu. Aspose.Words wstawia znak Unicode “ZNAK OD PRAWEJ DO LEWEJ” (U+200F) przed każdym dwukierunkowym plikiem Run w tekście. Ta opcja odpowiada opcji “Dodaj znaki dwukierunkowe” w oknie dialogowym Konwersja pliku MS Word podczas eksportu do formatu zwykłego tekstu. Należy pamiętać, że pojawia się on w dialogu tylko wtedy, gdy w MS Word dodano którykolwiek z arabskich lub hebrajskich języków edycji.
Poniższy przykład kodu pokazuje, jak używać właściwości add_bidi_marks. Domyślna wartość tej właściwości to 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) |
Rozpoznaj elementy listy podczas ładowania TXT
Aspose.Words może importować elementy listy z pliku tekstowego jako numery list lub zwykły tekst w swoim modelu obiektowym dokumentu. Właściwość detect_numbering_with_whitespaces pozwala określić sposób rozpoznawania numerowanych elementów listy, gdy dokument jest importowany z formatu zwykłego tekstu:
- Jeśli ta opcja jest ustawiona na
True
, białe znaki są również używane jako ograniczniki numerów list: algorytm rozpoznawania list dla numeracji w stylu arabskim (1., 1.1.2.) używa zarówno białych znaków, jak i symboli kropki (."). - Jeśli ta opcja jest ustawiona na
False
, algorytm rozpoznawania list wykrywa akapity listy, gdy numery listy kończą się kropką, prawym nawiasem lub symbolami punktorów (takimi jak “•”, “*”, “-” lub “o”).
Poniższy przykład kodu pokazuje, jak używać tej właściwości:
# 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") |
Obsługuj spacje początkowe i końcowe podczas ładowania TXT
Możesz kontrolować sposób obsługi spacji początkowych i końcowych podczas ładowania pliku TXT. Spacje początkowe można przyciąć, zachować lub przekształcić w wcięcie, a spacje końcowe można przyciąć lub zachować.
Poniższy przykład kodu pokazuje, jak przyciąć spacje początkowe i końcowe podczas importowania pliku 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") |
Wykryj kierunek tekstu dokumentu
Aspose.Words zapewnia właściwość document_direction w klasie TxtLoadOptions do wykrywania kierunku tekstu (RTL/LTR) w dokumencie. Ta właściwość ustawia lub pobiera wskazówki dotyczące tekstu dokumentu podane w wyliczeniu DocumentDirection. Wartość domyślna jest od lewej do prawej.
Poniższy przykład kodu pokazuje, jak wykryć kierunek tekstu w dokumencie podczas importowania pliku 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") |
Eksportuj nagłówek i stopkę w wyjściowym formacie TXT
Jeśli chcesz wyeksportować nagłówek i stopkę w wyjściowym dokumencie TXT, możesz użyć właściwości export_headers_footers_mode. Ta właściwość określa sposób, w jaki nagłówki i stopki są eksportowane do formatu zwykłego tekstu.
Poniższy przykład kodu pokazuje, jak eksportować nagłówki i stopki do formatu zwykłego tekstu:
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)
Eksportuj wcięcie listy w wyjściowym formacie TXT
Aspose.Words wprowadził klasę TxtListIndentation, która pozwala określić sposób wcięcia poziomów listy podczas eksportu do formatu zwykłego tekstu. Podczas pracy z formatem TxtSaveOption dostępna jest właściwość list_indentation, która umożliwia określenie znaku używanego do wcięcia poziomów listy oraz liczbę znaków określającą, ile znaków ma być używanych jako wcięcie na jeden poziom listy. Domyślną wartością właściwości znaku jest “\0”, co oznacza, że nie ma wcięcia. W przypadku właściwości count wartość domyślna to 0, co oznacza brak wcięć.
Korzystanie ze znaku tabulacji
Poniższy przykład kodu pokazuje, jak eksportować poziomy list przy użyciu znaków tabulacji:
# 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) |
Używanie znaku spacji
Poniższy przykład kodu pokazuje, jak eksportować poziomy list przy użyciu spacji:
# 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) |