Видалення користувацьких табуляційних зупинок з рівнів списку дає вам детальний контроль над розташуванням списку у документах Word. Функція Removing List Level Tab Stops додає простий метод ListLevel.RemoveTabStop(), який очищає будь‑яку раніше встановлену табуляційну зупинку. У цій статті розповідається, як встановити SDK, створити список, видалити його табуляційну зупинку та зберегти оновлений документ.
Чому видаляти таб-стопи рівня списку у документі Word
Списки у Word часто покладаються на табуляцію за замовчуванням, яка вирівнює номер елемента або маркер з текстом. Коли документ створюється програмно, ви можете додати власну табуляцію, щоб досягти певного візуального вирівнювання. Пізніше вимоги бізнесу можуть змінитися, або вам може знадобитися повторно використати той самий шаблон для іншого макету. Ручне редагування документа для видалення табуляції є трудомістким і схильним до помилок. За допомогою ListLevel.RemoveTabStop() ви можете програмно повернути рівень списку до його поведінки за замовчуванням, забезпечуючи послідовність у створених документах без ручного втручання.
Знайомство з API ListLevel
Aspose.Words for .NET надає багатий об’єктний модель для роботи з документами Word. Клас ListLevel представляє окремий рівень у списку (наприклад, перший рівень нумерованого списку). Починаючи з версії 26.7, клас включає метод RemoveTabStop(), який очищає будь‑яку користувацьку табуляцію, встановлену для цього рівня.
Для початку встановіть пакет Aspose.Words з NuGet:
Install-Package Aspose.Words
Більше про продукт ви можете дізнатися на сторінці продукту Aspose.Words for .NET. Детальна документація доступна в документації Aspose.Words .NET, а повний довідник API можна переглянути тут.
Видалити власну табуляційну зупинку з одного рівня списку
Покроковий посібник
- Створіть новий Document і DocumentBuilder. Об’єкт
Documentзберігає Word‑файл у пам’яті, аDocumentBuilderспрощує створення вмісту. - Застосуйте формат нумерованого списку за замовчуванням. Це дає нам список з попередньо визначеним рівнем і табуляцією.
- Напишіть кілька пунктів списку. Пункти успадковують форматування списку.
- Отримайте поточний
ListLevelз builder’а. Це рівень, який ми щойно створили. - Викличте
RemoveTabStop()наListLevel. Це очищає користувацьку табуляцію. - Збережіть документ щоб перевірити зміни.
У наведеному прикладі показано, як видалити користувацьку табуляцію з рівня списку за допомогою C# та 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");
Як це працює
builder.ListFormat.ApplyNumberDefault()перемикає builder у контекст нумерованого списку, використовуючи стиль списку за замовчуванням, визначений у Word. Це неявно створює новий об’єктListі відповіднийListLevelдля першого рівня.builder.Writeln(...)записує два елементи списку. Оскільки builder перебуває у режимі списку, кожний виклик автоматично додає відповідний номер списку і вирівнює текст згідно з табуляцією рівня.builder.ListFormat.ListLevelповертає екземплярListLevel, який керує форматуванням поточного рівня списку (у цьому випадку рівень 0).listLevel.RemoveTabStop()очищає користувацьку табуляцію, встановлену під час створення рівня списку. Після цього виклику список буде використовувати табуляцію за замовчуванням у Word, зазвичай розташовану на лівому відступі рівня.doc.Save(...)записує документ у пам’яті у файл з назвоюParagraph.RemoveTabStopFromListLevel.docx. Відкрийте файл у Microsoft Word або будь‑якому сумісному переглядачі, щоб побачити, що числа та текст тепер вирівняні за допомогою табуляції за замовчуванням.
Note: Цей зразок коду відтворений з офіційних приміток до випуску Aspose.Words і не був виконаний у пісочниці. Перевірте його у вашому середовищі розробки перед використанням у продакшн.
Видалити табуляційні позиції зі всіх рівнів списку в документі
У багатьох реальних сценаріях документ містить кілька списків, кожен з кількома рівнями. Видалення табуляції лише з одного рівня може бути недостатнім. Наведений нижче фрагмент показує, як пройтися по кожному списку в документі та очистити табуляцію на кожному рівні.
// 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");
Пояснення коду
new Document("Input.docx")завантажує існуючий файл Word, який може містити кілька списків.doc.Listsповертає колекцію об’єктівList, що представляють кожен окремий список у документі.list.ListLevelsнадає доступ до дев’яти можливих рівнів (0‑8) для цього списку. Навіть якщо рівень не використовується, колекція все одно містить екземплярListLevelіз форматуванням за замовчуванням.- Усередині внутрішнього циклу викликається
level.RemoveTabStop()для кожного рівня, гарантуючи, що в документі не залишиться жодних користувацьких табуляцій. - Нарешті,
doc.Save("Output_NoTabStops.docx")записує очищений документ.
Цей підхід особливо корисний, коли потрібно забезпечити уніфіковане розташування списків у пакеті згенерованих звітів або коли ви нормалізуєте документи, отримані з зовнішніх джерел.
Програмне додавання та потім видалення позиції табуляції
Іноді вам може знадобитися додати власну табуляцію для тимчасового макету, виконати деякі операції, а потім повернутися до значення за замовчуванням. SDK дозволяє додати табуляцію за допомогою ListLevel.TabStops.Add(double position). Після завершення тимчасового форматування ви можете викликати RemoveTabStop(), щоб очистити.
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");
Пояснення коду
- Після створення документа та застосування нумерованого списку, ми записуємо перший пункт.
level.TabStops.Add(72)вставляє користувацьку табуляцію на 72 пунктах (точно один дюйм). Наступний елемент списку вирівнює свій текст у цьому положенні.- Після того, як тимчасове форматування більше не потрібне,
level.RemoveTabStop()очищає користувацьку табуляцію, змушуючи наступні елементи повернутися до стандартного вирівнювання. - Останній
Writelnдемонструє ефект видалення.
Цей шаблон зручний, коли потрібне одноразове коригування — наприклад, щоб вирівняти заголовок у списку для конкретного макету сторінки — при цьому зберігаючи решту документа чистою.
Отримайте безкоштовну ліцензію
Aspose пропонує тимчасову безкоштовну ліцензію, яка видаляє позначки оцінки та надає повний доступ до API для розробки та тестування. Ви можете запросити її зі сторінки тимчасової ліцензії Aspose.
Безкоштовні додаткові ресурси
- Aspose.Words Документація
- API довідник для Aspose.Words .NET
- Безкоштовні онлайн-додатки – Конвертація та редагування Word
Висновок
У цьому підручнику ми розглянули, як використовувати новий метод ListLevel.RemoveTabStop() у Aspose.Words 26.7. Очищуючи власні табуляції, ви відновлюєте контроль над вирівнюванням списків, спрощуєте шаблони документів і забезпечуєте послідовне форматування згенерованих файлів Word. Приклади показали видалення для одного рівня списку, масове видалення в усьому документі та шаблон для тимчасових налаштувань табуляції. Впровадження цих технік у ваші .NET додатки зробить автоматизацію Word більш надійною та легшою у підтримці.
FAQs
Що саме видаляє ListLevel.RemoveTabStop()?
Метод очищає будь‑яку користувацьку табуляцію, яка була визначена для рівня списку, повертаючи рівень до використання табуляції за замовчуванням, визначеної стилем документа.Чи потрібно викликати Save() після видалення позиції табуляції?
Так. Зміни виконуються в пам’яті, тому ви повинні викликатиDocument.Save(), щоб зберегти оновлене форматування списку у файл.Чи можу я видалити табуляції зі всіх рівнів списку в одному документі?
Звичайно. Ви можете пройтись по кожномуListу документі, а потім по кожномуListLevel, викликаючиRemoveTabStop()там, де це потрібно.Чи підтримується RemoveTabStop() для маркованих списків, так само як і для нумерованих списків?
Так. Метод працює з будь‑якимListLevel, незалежно від того, чи представляє він маркер, номер або багаторівневий формат.Чи вплине видалення користувацької табуляції на відступ існуючих елементів списку?
Змінюється лише позиція табуляції. Загальний відступ, визначений лівим відступом рівня списку, залишається незмінним, тому елементи списку зберігають свою візуальну ієрархію.Чи потрібна мені платна ліцензія для використання ListLevel.RemoveTabStop()?
API доступний у безкоштовній тимчасовій ліцензії, але для використання у продакшн‑середовищі вам слід отримати повну ліцензію від Aspose.
