Работа с наборами страниц
Работа с наборами страниц
Это руководство показывает, как описать подмножество страниц документа — произвольный набор индексов страниц, а не один непрерывный диапазон — используя PageSet in Aspose.Words FOSS для .NET. PageSet является запечатанным классом в Aspose.Words.Saving namespace, описывающий случайный набор страниц.
Создание PageSet
PageSet имеет три конструктора: PageSet(page) создает набор из одной страницы по единственному индексу страницы; PageSet(pages) создает набор из коллекции точных индексов страниц; и PageSet(ranges) создает набор из коллекции диапазонов страниц. Выберите конструктор, соответствующий тому, как в вашем случае выражен выбор страниц — одна страница, разбросанный список страниц или сплошные диапазоны.
Встроенные наборы: All, Even и Odd
Три статических свойства предоставляют готовые наборы без ручного создания: PageSet.All возвращает набор, содержащий каждую страницу документа в исходном порядке, PageSet.Even возвращает набор, содержащий только чётные страницы, а PageSet.Odd возвращает набор, содержащий только нечётные страницы.
Перебор набора страниц
PageSet реализует IEnumerable<int>, поэтому любой экземпляр PageSet — будь то созданный напрямую или полученный из All, Even или Odd — можно перебрать с помощью GetEnumerator() (или цикла foreach), чтобы пройти по индексам страниц, которые он содержит.
Советы и лучшие практики
- Используйте
PageSet.All,EvenилиOddв типичных случаях вместо создания явного списка индексов, если только выбранные элементы не соответствуют одному из этих трёх шаблонов. - Выберите конструктор
PageSet(pages)для разрозненного, несмежного выбора страниц иPageSet(ranges), когда выбор естественно выражается одной или несколькими смежными диапазонами. - Поскольку
PageSetреализуетIEnumerable<int>, его можно использовать везде, где ожидаетсяIEnumerable<int>индексов страниц, без какого-либо дополнительного шага преобразования.
Распространённые проблемы
| Проблема | Причина | Исправление |
|---|---|---|
Объект PageSet, построенный из PageSet.Even или Odd, выглядит пустым при перечислении в коротком документе | В документе меньше чётных (или нечётных) страниц, чем ожидалось | Подтвердите фактическое количество страниц в документе, прежде чем полагаться на Even/Odd |
| Не уверены, какой конструктор использовать для смеси отдельных страниц и диапазонов | PageSet(pages) и PageSet(ranges) каждый принимает только одну форму ввода | Создайте отдельные экземпляры PageSet для индексов и диапазонов, либо нормализуйте выбор до единой формы перед созданием |
FAQ
Как получить PageSet, содержащий все страницы документа?
Используйте статическое свойство PageSet.All.
Как выбрать только чётные или нечётные страницы?
Используйте PageSet.Even или PageSet.Odd.
Как создать PageSet из произвольного списка номеров страниц?
Используйте конструктор PageSet(pages) с коллекцией точных индексов страниц.
Могу ли я перебирать страницы, содержащиеся в PageSet?
Да — PageSet реализует IEnumerable<int>, поэтому GetEnumerator() или цикл foreach проходит по индексам страниц, которые он описывает.
API Reference Сводка
| Класс | Описание: |
|---|---|
PageSet | Описывает набор страниц; конструкторы для одной страницы, точных индексов или диапазонов; All, Even, Odd, GetEnumerator() |