Obsah (TOC) je nezbytnou funkcí v dokumentech Word, zejména pro rozsáhlé dokumenty jako jsou zprávy, diplomové práce a eKnihy. Činí dokumenty Word čitelnějšími a umožňuje čtenářům rychle procházet různé části dokumentu. V tomto příspěvku se naučíte, jak automatizovat obsah v dokumentech Word programově pomocí Pythonu. Probereme kroky k vytvoření obsahu v dokumentu Word, vložení TOC do existujícího dokumentu nebo extrakci TOC z dokumentu pomocí Pythonu.
Tento článek pokrývá následující témata:
- Knihovna Python Word pro práci s TOC
- Vytvoření obsahu (TOC) ve Wordu pomocí Pythonu
- Vytvoření obsahu v existujícím dokumentu Word
- Extrakce obsahu z dokumentu Word
- Získání bezplatné licence API
- Bezplatné zdroje
Knihovna Python Word pro práci s TOC
Pro práci s TOC v dokumentech Word pomocí Pythonu budeme používat knihovnu Aspose.Words for Python. Umožňuje vývojářům vytvářet, upravovat a automatizovat dokumenty Word v aplikacích Python. Začněme nastavením našeho prostředí.
Než se ponoříme do kódu, ujistěte se, že máte nainstalovanou knihovnu Aspose.Words for Python. Můžete stáhnout balíček nebo nainstalovat API z PyPI pomocí následujícího příkazu pip v terminálu:
pip install aspose-words
Tímto se stáhne a nainstaluje knihovna Aspose.Words for Python a její závislosti.
Vytvoření obsahu ve Wordu pomocí Pythonu
Postupujte podle níže uvedených kroků pro přidání obsahu do dokumentu Word pomocí Pythonu.
- Vytvořte instanci třídy Document.
- Vytvořte instanci třídy DocumentBuilder s objektem Document.
- Vložte obsah pomocí metody insert_table_of_contents().
- Určete styly nadpisů pomocí vlastnosti style_identifier.
- Aktualizujte pole pomocí metody update_fields().
- Uložte dokument Word pomocí metody save().
Následující ukázka kódu ukazuje, jak vytvořit obsah v dokumentu Word pomocí Pythonu.
# This code example shows how to add a Table of Contents in a Word document. | |
# Create a document | |
doc = aw.Document() | |
# Initialize a document builder | |
builder = aw.DocumentBuilder(doc) | |
# Insert table of contents | |
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u") | |
# Start the actual document content on the second page. | |
builder.insert_break(aw.BreakType.PAGE_BREAK) | |
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1 | |
builder.writeln("Heading 1") | |
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2 | |
builder.writeln("Heading 1.1") | |
builder.writeln("Heading 1.2") | |
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1 | |
builder.writeln("Heading 2") | |
builder.writeln("Heading 3") | |
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2 | |
builder.writeln("Heading 3.1") | |
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING3 | |
builder.writeln("Heading 3.1.1") | |
builder.writeln("Heading 3.1.2") | |
builder.writeln("Heading 3.1.3") | |
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2 | |
builder.writeln("Heading 3.2") | |
builder.writeln("Heading 3.3") | |
# The newly inserted table of contents will be initially empty. | |
# It needs to be populated by updating the fields in the document. | |
doc.update_fields() | |
# Save the document | |
doc.save("insert_table_of_contents.docx") |
Vytvoření obsahu v existujícím dokumentu Word
Obsah můžete vložit také do existujícího dokumentu Word podle níže uvedených kroků:
- Načtěte existující dokument Word pomocí třídy Document.
- Vytvořte instanci třídy DocumentBuilder a inicializujte ji s dříve vytvořeným objektem Document.
- Vložte obsah pomocí metody insert_table_of_contents().
- Aktualizujte pole pomocí metody update_fields().
- Uložte dokument Word pomocí metody save().
Následující ukázka kódu ukazuje, jak vytvořit obsah v existujícím dokumentu Word pomocí Pythonu.
# This code example shows how to insert a Table of Contents in an existing Word document. | |
# Load an existing Word document | |
doc = Document("toc_sample.docx"); | |
builder = DocumentBuilder(doc); | |
# Insert a table of contents at the beginning of the document. | |
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u"); | |
# The newly inserted table of contents will be initially empty. | |
# It needs to be populated by updating the fields in the document. | |
doc.update_fields(); | |
# Save the document | |
doc.save("InsertTOC_out.docx"); |
Extrakce obsahu z dokumentu Word v Pythonu
Můžete extrahovat pole z obsahu dokumentu Word podle níže uvedených kroků:
- Načtěte dokument Word pomocí třídy Document.
- Projděte kolekci doc.range.fields.
- Zkontrolujte, zda je typ pole FIELD_HYPERLINK.
- Zkontrolujte, zda pole spadá pod sekci obsahu.
- Získejte informace z pole a vytiskněte je.
Následující ukázka kódu ukazuje, jak extrahovat obsah z dokumentu Word pomocí Pythonu.
# This code example shows how to extract a Table of Contents from a Word document. | |
# Load an existing Word document | |
doc = aw.Document(InsertTOC_out.docx") | |
# Loop through all the fields | |
for field in doc.range.fields: | |
# Check if it is FIELD_HYPERLINK | |
if (field.type == aw.fields.FieldType.FIELD_HYPERLINK): | |
hyperlink = field.as_field_hyperlink() | |
# Check if it in TOC section | |
if (hyperlink.sub_address != None and hyperlink.sub_address.find("_Toc") == 0): | |
tocItem = field.start.get_ancestor(aw.NodeType.PARAGRAPH).as_paragraph() | |
print(tocItem.to_string(aw.SaveFormat.TEXT).strip()) | |
print("------------------") | |
bm = doc.range.bookmarks.get_by_name(hyperlink.sub_address) | |
pointer = bm.bookmark_start.get_ancestor(aw.NodeType.PARAGRAPH).as_paragraph() | |
print(pointer.to_string(aw.SaveFormat.TEXT)) |
Heading 1 1
------------------
Heading 1
Heading2 1
------------------
Heading2
Another Heading 1
------------------
Another Heading
Získání bezplatné licence
Můžete získat bezplatnou dočasnou licenci a vytvořit obsah v dokumentech Word bez hodnotících omezení.
TOC ve Wordu – bezplatné zdroje
- Přečtěte si sekci Práce s obsahem v oficiální dokumentaci, abyste se dozvěděli více o přidávání, aktualizaci nebo odstraňování TOC ve Wordu.
Kromě práce s obsahem v dokumentech Word prozkoumejte další funkce Aspose.Words for Python pomocí níže uvedených zdrojů:
Závěr
V tomto článku jste se naučili, jak programově pracovat s obsahem (TOC) v dokumentu Word. Dodržením kroků uvedených v tomto článku můžete automatizovat proces vytváření a správy rozsáhlých dokumentů. Aspose.Words for Python vám umožňuje efektivně spravovat vaše dokumenty Word a zlepšovat jejich použitelnost s dobře strukturovaným obsahem. Máte-li jakékoli dotazy nebo potřebujete další pomoc, neváhejte se obrátit na naše bezplatné podporové fórum.