Odstranění vlastních tabulátorů z úrovní seznamu vám poskytuje detailní kontrolu nad rozvržením seznamu v dokumentech Word. Funkce Removing List Level Tab Stops přidává jednoduchou metodu ListLevel.RemoveTabStop(), která vymaže jakýkoli dříve nastavený tabulátor. Tento článek vás provede instalací SDK, vytvořením seznamu, odstraněním jeho tabulátoru a uložením aktualizovaného dokumentu.

Proč odstranit tabulátory úrovně seznamu v dokumentu Word

Seznamy ve Wordu často spoléhají na výchozí tabulátor, který zarovnává číslo položky nebo odrážku s textem. Když je dokument generován programově, můžete přidat vlastní tabulátor pro dosažení konkrétního vizuálního zarovnání. Později se mohou změnit obchodní požadavky nebo můžete potřebovat znovu použít stejnou šablonu pro jiný rozvrh. Ruční úprava dokumentu za účelem odstranění tabulátoru je časově náročná a náchylná k chybám. Pomocí ListLevel.RemoveTabStop() můžete programově vrátit úroveň seznamu k jejímu výchozímu chování, což zajišťuje konzistenci napříč generovanými dokumenty bez ručního zásahu.

Představení ListLevel API

Aspose.Words for .NET poskytuje bohatý objektový model pro manipulaci s dokumenty Word. Třída ListLevel představuje jednotlivou úroveň v seznamu (například první úroveň číslovaného seznamu). Od verze 26.7 třída obsahuje metodu RemoveTabStop(), která vymaže jakýkoli vlastní tabulátor nastavený na této úrovni.

Začnete instalací balíčku Aspose.Words z NuGet:

Install-Package Aspose.Words

Můžete se dozvědět více o produktu na Aspose.Words for .NET product page. Podrobná dokumentace je k dispozici na Aspose.Words .NET docs, a kompletní referenci API můžete prozkoumat zde.

Odstranit vlastní tabulátor z jedné úrovně seznamu

Návod krok za krokem

  1. Vytvořte nový Document a DocumentBuilder. Objekt Document uchovává soubor Word v paměti, zatímco DocumentBuilder usnadňuje vytváření obsahu.
  2. Použijte výchozí formát číslovaného seznamu. To nám poskytne seznam s předdefinovanou úrovní a tabulátorem.
  3. Napište několik položek seznamu. Položky dědí formátování seznamu.
  4. Získejte aktuální ListLevel z builderu. Toto je úroveň, kterou jsme právě vytvořili.
  5. Zavolejte RemoveTabStop() na ListLevel. Tím se odstraní vlastní tabulátor.
  6. Uložte dokument pro ověření změny.

Následující příklad ukazuje, jak odebrat vlastní tabulátor z úrovně seznamu pomocí C# a Aspose.Words.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a list with default formatting
builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Numbered list item 1");
builder.Writeln("Numbered list item 2");

// Get the list level and remove its tab stop
ListLevel listLevel = builder.ListFormat.ListLevel;
listLevel.RemoveTabStop();

doc.Save("Paragraph.RemoveTabStopFromListLevel.docx");

Jak to funguje

  • builder.ListFormat.ApplyNumberDefault() přepne builder do kontextu číslovaného seznamu pomocí výchozího stylu seznamu definovaného ve Wordu. Implicitně vytvoří nový objekt List a odpovídající ListLevel pro první úroveň.
  • builder.Writeln(...) zapíše dva položky seznamu. Protože je builder v režimu seznamu, každé volání automaticky předřadí odpovídající číslo položky a zarovná text podle tabulátoru úrovně.
  • builder.ListFormat.ListLevel vrací instanci ListLevel, která řídí formátování pro aktuální úroveň seznamu (úroveň 0 v tomto případě).
  • listLevel.RemoveTabStop() vymaže vlastní tabulátor, který byl nastaven při vytvoření úrovně seznamu. Po tomto volání bude seznam používat výchozí tabulátor Wordu, který je typicky umístěn na levém odsazení úrovně.
  • doc.Save(...) zapíše dokument v paměti do souboru s názvem Paragraph.RemoveTabStopFromListLevel.docx. Otevřete soubor v Microsoft Word nebo v jakémkoli kompatibilním prohlížeči, abyste viděli, že čísla a text jsou nyní zarovnány pomocí výchozího tabulátoru.

Poznámka: Tento ukázkový kód je převzat z oficiálních poznámek k vydání Aspose.Words a nebyl spuštěn v sandboxovém prostředí. Ověřte jej ve svém vývojovém prostředí, než jej použijete v produkci.

Odebrat tabulátory ze všech úrovní seznamu v dokumentu

V mnoha reálných scénářích dokument obsahuje více seznamů, z nichž každý má několik úrovní. Odebrání tabulátoru jen z jedné úrovně nemusí být dostačující. Následující úryvek ukazuje, jak projít každý seznam v dokumentu a vymazat tabulátor na každé úrovni.

// Load an existing document that contains multiple lists
Document doc = new Document("Input.docx");

// Iterate through every list in the document
foreach (List list in doc.Lists)
{
    // Each list can have multiple levels (0‑8). Iterate them.
    foreach (ListLevel level in list.ListLevels)
    {
        // Remove any custom tab stop for this level
        level.RemoveTabStop();
    }
}

// Save the updated document
doc.Save("Output_NoTabStops.docx");

Vysvětlení kódu

  • new Document("Input.docx") načte existující soubor Word, který může obsahovat několik seznamů.
  • doc.Lists vrací kolekci objektů List, představujících každý samostatný seznam v dokumentu.
  • list.ListLevels poskytuje přístup k devíti možným úrovním (0‑8) pro tento seznam. I když není úroveň použita, kolekce stále obsahuje instanci ListLevel s výchozím formátováním.
  • Vnitřní smyčkou se na každé úrovni volá level.RemoveTabStop(), což zajišťuje, že v dokumentu nezůstane žádná vlastní tabulátorová zastávka.
  • Nakonec doc.Save("Output_NoTabStops.docx") zapíše vyčištěný dokument.

Tento přístup je zvláště užitečný, když potřebujete vynutit jednotné rozvržení seznamu napříč dávkou generovaných zpráv nebo když normalizujete dokumenty přijaté z externích zdrojů.

Programatické přidání a následné odebrání zarážky

Někdy můžete potřebovat přidat vlastní tabulátor pro dočasné rozvržení, provést některé operace a poté se vrátit k výchozímu nastavení. SDK vám umožňuje přidat tabulátor pomocí ListLevel.TabStops.Add(double position). Po dokončení dočasného formátování můžete zavolat RemoveTabStop(), abyste provedli úklid.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.ListFormat.ApplyNumberDefault();
builder.Writeln("Temporarily aligned item 1");

// Add a custom tab stop at 72 points (1 inch)
ListLevel level = builder.ListFormat.ListLevel;
level.TabStops.Add(72);

builder.Writeln("Item with custom tab stop");

// Later, remove the custom tab stop
level.RemoveTabStop();

builder.Writeln("Item after removing tab stop");

doc.Save("TempTabStopDemo.docx");

Vysvětlení kódu

  • Po vytvoření dokumentu a aplikaci číslovaného seznamu zapíšeme první položku.
  • level.TabStops.Add(72) vloží vlastní tabulátor na 72 bodů (přesně jeden palec). Následující položka seznamu zarovná svůj text na tuto pozici.
  • Po tom, co dočasné formátování již není potřeba, level.RemoveTabStop() vymaže vlastní tabulátor, což způsobí, že následující položky se vrátí k výchozímu zarovnání.
  • Poslední Writeln demonstruje efekt odstranění.

Tento vzor je užitečný, když potřebujete jednorázové úpravy — například zarovnat nadpis v seznamu pro konkrétní rozvržení stránky — a přitom zachovat zbytek dokumentu čistý.

Získat bezplatnou licenci

Aspose nabízí dočasnou bezplatnou licenci, která odstraňuje evaluační vodoznaky a poskytuje plný přístup k API pro vývoj a testování. Můžete si ji vyžádat na stránka dočasné licence Aspose.

Bezplatné další zdroje

Závěr

V tomto tutoriálu jsme se zabývali tím, jak použít novou metodu ListLevel.RemoveTabStop() zavedenou v Aspose.Words 26.7. Vymazáním vlastních tabulátorů získáte zpět kontrolu nad zarovnáním seznamů, zjednodušíte šablony dokumentů a zajistíte konzistentní formátování generovaných souborů Word. Příklady ukázaly odstranění pro jedinou úroveň seznamu, hromadné odstranění v celém dokumentu a vzor pro dočasné úpravy tabulátorů. Začleněním těchto technik do vašich .NET aplikací učiníte automatizaci Wordu robustnější a snáze udržovatelnou.

Často kladené otázky

  1. Co vlastně odstraňuje ListLevel.RemoveTabStop()?
    Metoda vymaže jakýkoli vlastní tabulátor, který byl definován pro úroveň seznamu, a vrátí úroveň k použití výchozího tabulátoru definovaného stylem dokumentu.

  2. Musím zavolat Save() po odstranění tabulátoru?
    Ano. Změny jsou provedeny v paměti, takže musíte zavolat Document.Save(), aby se aktualizované formátování seznamu uložilo do souboru.

  3. Mohu odstranit tabulátory ze všech úrovní seznamu v jednom dokumentu?
    Ano. Můžete projít každý List v dokumentu a poté každou ListLevel, přičemž tam, kde je to potřeba, zavolat RemoveTabStop().

  4. Je RemoveTabStop() podporována i pro odrážkové seznamy i pro číslované seznamy?
    Ano. Metoda funguje na jakémkoli ListLevel, bez ohledu na to, zda představuje odrážku, číslo nebo víceúrovňový formát.

  5. Ovlivní odstranění vlastního tabulátoru odsazení existujících položek seznamu?
    Mění se pouze pozice tabulátoru. Celkové odsazení definované levým odsazením úrovně seznamu zůstává nezměněno, takže položky seznamu si zachovávají svou vizuální hierarchii.

  6. Potřebuji placenou licenci k použití ListLevel.RemoveTabStop()?
    API je k dispozici v bezplatné dočasné licenci, ale pro produkční použití byste si měli získat plnou licenci od Aspose.

Číst více