После обработки исчезло дерево закладок
Закладки не принадлежат страницам. Это отдельное дерево в корневой записи документа, где у каждой ветки записано название и точка, куда прыгать. Копирование страниц забирает только то, на что страница ссылается сама, — а корень у нового файла свой и пустой. Отсюда простое правило: операции, пересобирающие документ, оглавление теряют, а операции, правящие исходный файл, сохраняют.
Коротко о цифрах
- Где живут закладки
- отдельным деревом в корневой записи документа, не при страницах
- Что переносится при пересборке
- название, автор, тема и программа-создатель
- Что не переносится сознательно
- ключевые слова — разделитель чужого перечня неизвестен
- Операции, сохраняющие дерево
- поворот, обрезка, водяной знак, нумерация, сведение, оптимизация
- Операции, теряющие дерево
- объединение, разделение, извлечение, удаление страниц, раскладка на лист
Кто теряет закладки, а кто нет
- Теряют: объединение, разделение, извлечение и удаление страниц, раскладка нескольких страниц на лист — все они начинают с пустого документа.
- Сохраняют: поворот, обрезка, водяной знак, нумерация страниц и сведение — они открывают ваш файл и записывают его обратно вместе с корнем.
- Сохраняет и серверная оптимизация: переписывается порядок объектов, а не содержимое документа, поэтому дерево остаётся целым.
- Сжатие теряет всё сразу — страницы становятся картинками, и прыгать закладкам некуда, даже если бы они сохранились.
- Вместе с закладками из пересобранного документа уходят именованные точки перехода и действие, выполняемое при открытии.
Что мы всё-таки переносим
Из корневой записи в новый документ переезжает его описание: название, автор, тема и программа-создатель. Без этого трёхсотстраничный отчёт терял бы имя и авторство от одной удалённой страницы, и каталоги, которые читают эти поля, видели бы документ без названия. Каждое поле копируется только если оно в исходнике есть, поэтому голый скан остаётся голым.
Ключевые слова сознательно пропущены. Библиотека читает их одной строкой, а записывает списком, и разделить чужой перечень, не зная его разделителя, значит с равной вероятностью получить один длинный ключ или десяток обрубков. Молча испортить поле хуже, чем оставить его пустым, поэтому оно не переносится вовсе.
Как сохранить оглавление
- Определите, нужно ли вам пересобирать документ вообще: поворот, обрезка и нумерация закладки не трогают.
- Если пересборка неизбежна, делайте её как можно раньше — до того, как расставите закладки в исходном редакторе.
- Расставляйте оглавление в программе, где документ создавался, и выгружайте PDF уже с деревом: так оно попадёт в файл один раз и надолго.
- После обработки откройте боковую панель просмотрщика и убедитесь, что дерево на месте, прежде чем отправлять файл.
- Для документов, где важна и структура, и размер, берите серверную оптимизацию вместо растеризующего сжатия.
Частые вопросы
Можно ли восстановить закладки после удаления страниц?
Инструментами нет. Дерево не сохранилось нигде в результате, а восстановить его по содержимому означало бы заново придумать названия разделов и точки перехода. Вернуться придётся к исходному файлу.
Почему после поворота страниц закладки остались, а после извлечения нет?
Поворот меняет число при странице внутри вашего же документа, корень остаётся тем же самым. Извлечение создаёт новый документ и переносит в него только страницы, а дерево закладок к страницам не относится.
Название документа тоже теряется при пересборке?
Нет, описание переносится специально: название, автор, тема и программа-создатель. Это отдельный шаг, сделанный именно потому, что новый документ по умолчанию создаётся с полностью пустым описанием.
Оптимизация точно не тронет структуру?
Не тронет. Она переставляет объекты внутри файла, чтобы первая страница начинала показываться раньше, и содержимое документа при этом не меняется — ни страницы, ни дерево закладок.