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
- Vytvořte nový Document a DocumentBuilder. Objekt
Documentuchovává soubor Word v paměti, zatímcoDocumentBuilderusnadňuje vytváření obsahu. - Použijte výchozí formát číslovaného seznamu. To nám poskytne seznam s předdefinovanou úrovní a tabulátorem.
- Napište několik položek seznamu. Položky dědí formátování seznamu.
- Získejte aktuální
ListLevelz builderu. Toto je úroveň, kterou jsme právě vytvořili. - Zavolejte
RemoveTabStop()naListLevel. Tím se odstraní vlastní tabulátor. - 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ý objektLista odpovídajícíListLevelpro 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.ListLevelvrací instanciListLevel, 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ázvemParagraph.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.Listsvrací kolekci objektůList, představujících každý samostatný seznam v dokumentu.list.ListLevelsposkytuje 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 instanciListLevels 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í
Writelndemonstruje 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
- Aspose.Words Dokumentace
- API reference pro Aspose.Words .NET
- Bezplatné online aplikace – konverze a úprava Wordu
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
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.Musím zavolat Save() po odstranění tabulátoru?
Ano. Změny jsou provedeny v paměti, takže musíte zavolatDocument.Save(), aby se aktualizované formátování seznamu uložilo do souboru.Mohu odstranit tabulátory ze všech úrovní seznamu v jednom dokumentu?
Ano. Můžete projít každýListv dokumentu a poté každouListLevel, přičemž tam, kde je to potřeba, zavolatRemoveTabStop().Je RemoveTabStop() podporována i pro odrážkové seznamy i pro číslované seznamy?
Ano. Metoda funguje na jakémkoliListLevel, bez ohledu na to, zda představuje odrážku, číslo nebo víceúrovňový formát.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.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.
