Как извлечь диапазон страниц из PDF
Диапазон записывается одной строкой: 1-3, 5, 7-10. Части разделяются запятыми, внутри части допускается ровно одна пара «начало-конец». Результат всегда один документ, а не набор файлов, и страницы в нём идут в порядке документа: 5, 1 даст первую и пятую, а не пятую и первую. Повторы схлопываются, так что 2, 2-4 равнозначно 2-4.
Коротко о цифрах
- Формат
- 1-3, 5, 7-10 — запятая между частями, дефис внутри части
- Отклоняется
- 1--3, 1-2-999, 2abc, 10-2 и пустая строка
- Опечатка в большом числе
- 1-10000000 зажимается по длине документа
- Номера за концом
- перечисляются отдельным сообщением после работы
- Порядок и дубли
- по возрастанию, повторы схлопываются
Что строка примет, а что отклонит
- Принимается: 7 — одна страница; 7-10 — подряд; 1-3, 5, 7-10 — вперемешку; пробелы вокруг запятых и дефисов не важны.
- Отклоняется 1--3 и 1-2-999: в части должна быть ровно одна пара, иначе непонятно, что имелось в виду, и раньше третье число просто терялось.
- Отклоняется 2abc: номер читается целиком, а не до первой буквы, поэтому опечатка не превратится в тихую двойку.
- Отклоняется 10-2: начало больше конца. Автоматически переворачивать такую запись нельзя — вы могли ошибиться в любом из двух чисел.
- Пустая строка тоже ошибка: молча собрать документ из ничего нельзя.
Границы документа и опечатки в числах
Запись 1-10000000 на десятистраничном файле не заставляет инструмент перебирать десять миллионов номеров: цикл ограничивается длиной документа сразу, ещё до перебора. Это не косметика — без ограничения такая опечатка вешала вкладку, потому что разбор идёт в том же потоке, что и интерфейс, и отменить его было нечем.
При этом номера за концом документа не исчезают бесследно: они собираются отдельным списком и показываются после работы отдельным сообщением. Вы получите файл из тех страниц, которые есть, и увидите, каких запрошенных страниц в документе не нашлось, — вместо молчаливой недостачи, которую замечают уже у получателя.
Когда диапазона недостаточно
- Порядок изменить нельзя: список всегда сортируется по возрастанию. Если нужен другой порядок, переставляйте страницы в организаторе.
- Разложить диапазоны по отдельным файлам за один заход тоже нельзя — вырезка складывает всё в один документ.
- Оставить всё, кроме перечисленного, быстрее через удаление страниц: не придётся выписывать длинный диапазон уцелевших.
- Полоса под полем подсвечивает выбранное на лету, поэтому проверять запись лучше глазами, а не пересчётом в уме.
Частые вопросы
Почему 5, 1 не даёт страницы в обратном порядке?
Разбор строки всегда возвращает номера по возрастанию: это гарантия, на которую опираются и вырезка, и удаление страниц. Порядок — отдельная задача, и решается она перетаскиванием эскизов в организаторе, а не строкой диапазона.
Что будет, если я запросил страницы 90-120, а в файле их сорок?
Вы получите ошибку о том, что ни одна из запрошенных страниц не попадает в документ. Если же часть номеров существует, файл соберётся из них, а недостающие будут перечислены в сообщении после работы.
Можно ли выбрать все страницы, кроме нескольких?
Технически да — перечислив уцелевшие диапазоны, но на сорока страницах это длинная и ошибкоопасная строка. Быстрее взять удаление страниц и указать те несколько, которые нужно выбросить: остальное останется автоматически.
Считаются ли страницы от единицы или от нуля?
От единицы, как их видит человек в просмотрщике. Первая страница документа — это 1. Но помните, что номер, напечатанный на бумаге, часто не совпадает с номером листа в файле из-за титула и предисловия.