Usuwanie niestandardowych tabulacji z poziomów listy daje precyzyjną kontrolę nad układem list w dokumentach Word. Funkcja Removing List Level Tab Stops dodaje prostą metodę ListLevel.RemoveTabStop(), która usuwa wcześniej ustawioną tabulację. Ten artykuł przeprowadzi Cię przez instalację SDK, tworzenie listy, usuwanie jej tabulacji oraz zapisywanie zaktualizowanego dokumentu.

Dlaczego usunąć tabulatory poziomu listy w dokumencie Word

Listy słowne często opierają się na domyślnym tabulatorze, który wyrównuje numer listy lub wypunktowanie z tekstem. Gdy dokument jest generowany programowo, możesz dodać własny tabulator, aby uzyskać określone wyrównanie wizualne. Później wymagania biznesowe mogą się zmienić lub może być konieczne ponowne użycie tego samego szablonu w innym układzie. Ręczna edycja dokumentu w celu usunięcia tabulatora jest czasochłonna i podatna na błędy. Dzięki ListLevel.RemoveTabStop() możesz programowo przywrócić poziom listy do domyślnego zachowania, zapewniając spójność w generowanych dokumentach bez ręcznej interwencji.

Wprowadzenie ListLevel API

Aspose.Words for .NET zapewnia bogaty model obiektowy do manipulacji dokumentami Word. Klasa ListLevel reprezentuje pojedynczy poziom listy (na przykład pierwszy poziom listy numerowanej). Od wersji 26.7 klasa zawiera metodę RemoveTabStop(), która usuwa wszelkie niestandardowe tabulatory ustawione na tym poziomie.

Aby rozpocząć, zainstaluj pakiet Aspose.Words z NuGet:

Install-Package Aspose.Words

Więcej informacji o produkcie znajdziesz na Aspose.Words for .NET strona produktu. Szczegółowa dokumentacja jest dostępna w Aspose.Words .NET dokumentacja, a pełną referencję API można przeglądać tutaj.

Usuń niestandardowy tabulator z pojedynczego poziomu listy

Poradnik krok po kroku

  1. Utwórz nowy Document i DocumentBuilder. Obiekt Document przechowuje plik Word w pamięci, a DocumentBuilder upraszcza tworzenie zawartości.
  2. Zastosuj domyślny format listy numerowanej. Daje to listę z predefiniowanym poziomem i tabulatorem.
  3. Napisz kilka elementów listy. Elementy dziedziczą formatowanie listy.
  4. Pobierz bieżący ListLevel z buildera. To jest poziom, który właśnie utworzyliśmy.
  5. Wywołaj RemoveTabStop() na ListLevel. To usuwa niestandardowy tabulator.
  6. Zapisz dokument aby zweryfikować zmianę.

Poniższy przykład demonstruje, jak usunąć niestandardowy znak tabulacji z poziomu listy przy użyciu C# i 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 działa

  • builder.ListFormat.ApplyNumberDefault() przełącza builder w kontekst listy numerowanej, używając domyślnego stylu listy zdefiniowanego w Wordzie. To implicite tworzy nowy obiekt List oraz odpowiadający mu ListLevel dla pierwszego poziomu.
  • builder.Writeln(...) zapisuje dwa elementy listy. Ponieważ builder znajduje się w trybie listy, każde wywołanie automatycznie dodaje odpowiedni numer listy i wyrównuje tekst w oparciu o tabulację poziomu.
  • builder.ListFormat.ListLevel zwraca instancję ListLevel, która kontroluje formatowanie bieżącego poziomu listy (poziom 0 w tym przypadku).
  • listLevel.RemoveTabStop() usuwa niestandardową tabulację ustawioną podczas tworzenia poziomu listy. Po tym wywołaniu lista będzie używać domyślnej tabulacji Worda, zazwyczaj znajdującej się przy lewym wcięciu poziomu.
  • doc.Save(...) zapisuje dokument w pamięci do pliku o nazwie Paragraph.RemoveTabStopFromListLevel.docx. Otwórz plik w Microsoft Word lub dowolnym kompatybilnym przeglądarce, aby zobaczyć, że liczby i tekst są teraz wyrównane przy użyciu domyślnej tabulacji.

Uwaga: Ten przykład kodu został zaczerpnięty z oficjalnych notatek wydania Aspose.Words i nie został uruchomiony w środowisku sandbox. Zweryfikuj go w swoim własnym środowisku deweloperskim przed użyciem w produkcji.

Usuń tabulatory ze wszystkich poziomów list w dokumencie

W wielu rzeczywistych scenariuszach dokument zawiera wiele list, z których każda ma kilka poziomów. Usunięcie wcięcia tabulacji tylko z jednego poziomu może nie być wystarczające. Poniższy fragment kodu pokazuje, jak przeiterować przez każdą listę w dokumencie i usunąć wcięcie tabulacji na każdym poziomie.

// 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");

Wyjaśnienie kodu

  • new Document("Input.docx") ładuje istniejący plik Word, który może zawierać kilka list.
  • doc.Lists zwraca kolekcję obiektów List reprezentujących każdą odrębną listę w dokumencie.
  • list.ListLevels zapewnia dostęp do dziewięciu możliwych poziomów (0‑8) dla tej listy. Nawet jeśli poziom nie jest używany, kolekcja nadal zawiera instancję ListLevel z domyślnym formatowaniem.
  • Wewnątrz wewnętrznej pętli wywoływane jest level.RemoveTabStop() dla każdego poziomu, co gwarantuje, że żadne niestandardowe tabulatory nie pozostaną w dokumencie.
  • Na koniec doc.Save("Output_NoTabStops.docx") zapisuje oczyszczony dokument.

To podejście jest szczególnie przydatne, gdy musisz wymusić jednolitą strukturę listy w zestawie wygenerowanych raportów lub gdy normalizujesz dokumenty otrzymane z zewnętrznych źródeł.

Programowe dodawanie i późniejsze usuwanie tabulacji

Czasami może być konieczne dodanie własnego tabulatora dla tymczasowego układu, wykonanie pewnych operacji, a następnie powrót do ustawień domyślnych. SDK umożliwia dodanie tabulatora przy użyciu ListLevel.TabStops.Add(double position). Po zakończeniu tymczasowego formatowania możesz wywołać RemoveTabStop(), aby posprzątać.

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");

Wyjaśnienie kodu

  • Po utworzeniu dokumentu i zastosowaniu listy numerowanej, zapisujemy pierwszy element.
  • level.TabStops.Add(72) wstawia niestandardowy tabulator na 72 punkty (dokładnie jeden cal). Następny element listy wyrównuje swój tekst do tej pozycji.
  • Po tym, jak tymczasowe formatowanie nie jest już potrzebne, level.RemoveTabStop() usuwa niestandardowy tabulator, powodując, że kolejne elementy powracają do domyślnego wyrównania.
  • Ostatnie Writeln demonstruje efekt usunięcia.

Ten wzorzec jest przydatny, gdy potrzebujesz jednorazowej korekty — na przykład, aby wyrównać nagłówek w obrębie listy dla konkretnego układu strony — jednocześnie zachowując resztę dokumentu w czystości.

Uzyskaj darmową licencję

Aspose oferuje tymczasową darmową licencję, która usuwa znaki wodne wersji ewaluacyjnej i zapewnia pełny dostęp do API w celu rozwoju i testowania. Możesz ją zamówić na stronie tymczasowej licencji Aspose.

Darmowe dodatkowe zasoby

Podsumowanie

W tym samouczku omówiliśmy, jak używać nowej metody ListLevel.RemoveTabStop() wprowadzonej w Aspose.Words 26.7. Usuwając niestandardowe tabulatory, odzyskujesz kontrolę nad wyrównaniem list, upraszcza się szablony dokumentów i zapewnia spójne formatowanie generowanych plików Word. Przykłady pokazały usuwanie dla pojedynczego poziomu listy, masowe usuwanie w całym dokumencie oraz wzorzec tymczasowych modyfikacji tabulatorów. Włączenie tych technik do aplikacji .NET sprawi, że automatyzacja Word będzie bardziej solidna i łatwiejsza w utrzymaniu.

Najczęściej zadawane pytania

  1. Co tak naprawdę usuwa ListLevel.RemoveTabStop()?
    Metoda usuwa dowolny niestandardowy znak tabulacji zdefiniowany dla poziomu listy, przywracając poziom do używania domyślnego znaku tabulacji określonego w stylu dokumentu.

  2. Czy muszę wywołać Save() po usunięciu zatrzymania tabulacji?
    Tak. Zmiany są wprowadzane w pamięci, więc musisz wywołać Document.Save(), aby zachować zaktualizowane formatowanie listy w pliku.

  3. Czy mogę usunąć tabulatory ze wszystkich poziomów listy w jednym dokumencie?
    Zdecydowanie. Możesz iterować po każdej List w dokumencie, a następnie po każdym ListLevel, wywołując RemoveTabStop() w razie potrzeby.

  4. Czy RemoveTabStop() jest obsługiwane dla list wypunktowanych, jak i numerowanych?
    Tak. Metoda działa na dowolnym ListLevel, niezależnie od tego, czy reprezentuje ona wypunktowanie, numerację lub format wielopoziomowy.

  5. Czy usunięcie niestandardowego tabulatora wpłynie na wcięcie istniejących elementów listy?
    Tylko pozycja tabulatora się zmienia. Ogólne wcięcie określone przez lewy wcięcie poziomu listy pozostaje niezmienione, więc elementy listy zachowują swoją wizualną hierarchię.

  6. Czy potrzebuję płatnej licencji, aby używać ListLevel.RemoveTabStop()?
    API jest dostępne w darmowej licencji tymczasowej, ale do użytku produkcyjnego powinieneś uzyskać pełną licencję od Aspose.

Czytaj więcej