Create TOC in Word

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

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.

  1. Vytvořte instanci třídy Document.
  2. Vytvořte instanci třídy DocumentBuilder s objektem Document.
  3. Vložte obsah pomocí metody insert_table_of_contents().
  4. Určete styly nadpisů pomocí vlastnosti style_identifier.
  5. Aktualizujte pole pomocí metody update_fields().
  6. 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 ve Wordu pomocí Pythonu.

Přidání obsahu do Wordu pomocí Pythonu

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ů:

  1. Načtěte existující dokument Word pomocí třídy Document.
  2. Vytvořte instanci třídy DocumentBuilder a inicializujte ji s dříve vytvořeným objektem Document.
  3. Vložte obsah pomocí metody insert_table_of_contents().
  4. Aktualizujte pole pomocí metody update_fields().
  5. 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");
Vytvoření obsahu v existujícím dokumentu Word.

Vytvoření obsahu v existujícím dokumentu Word

Extrakce obsahu z dokumentu Word v Pythonu

Můžete extrahovat pole z obsahu dokumentu Word podle níže uvedených kroků:

  1. Načtěte dokument Word pomocí třídy Document.
  2. Projděte kolekci doc.range.fields.
  3. Zkontrolujte, zda je typ pole FIELD_HYPERLINK.
  4. Zkontrolujte, zda pole spadá pod sekci obsahu.
  5. 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("------------------")
# 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.

Viz také