Вопрос или проблема
Я использую это для извлечения диапазона страниц PDF из большего PDF-файла ввода.
qpdf --empty --pages input.pdf 1051-1118 -- output.pdf
Это работает хорошо, однако левое меню (закладки) исчезло.
Есть ли способ сохранить его?
Также я заметил, что все ссылки (локальные ссылки документа) нарушены. Например, в оригинальном документе была ссылка на страницу 1055 (внутри моего диапазона), и после извлечения я ожидал, что она будет переписана на страницу 2 в моем новом документе.
Есть ли способ использовать qpdf более сложным образом, чтобы это сделать?
Спасибо,
Вы можете увидеть диапазон опций для qpdf
, открыв терминал и введя qpdf --help
.
Это Manpage для инструмента
Указание --empty
удаляет определенные метаданные уровня документа.
Чтобы сохранить оглавление и гиперссылки, замените --empty
на имя входного файла.
qpdf input.pdf --pages input.pdf 1051-1118 -- output.pdf
Ответ или решение
Для решения задачи по извлечению страниц из большого PDF-документа с сохранением закладок и исправлением локальных ссылок, используем возможности утилиты qpdf. Пользователь изначально применял команду:
qpdf --empty --pages input.pdf 1051-1118 -- output.pdf
Эта команда успешно извлекала указанный диапазон страниц, однако приводила к потере закладок и нарушению внутренних ссылок. Это происходит из-за использования флага --empty
, который создает новый пустой PDF, удаляя метаданные предыдущего документа.
Для сохранения закладок и правильного переноса внутренних ссылок, необходимо воспользоваться измененной командой:
qpdf input.pdf --pages input.pdf 1051-1118 -- output.pdf
Вот как данная команда работает более подробно:
- input.pdf: указываем исходный файл PDF, из которого требуется извлечь страницы.
- –pages input.pdf 1051-1118: определяем диапазон страниц, который будет извлечен. Использование input.pdf еще раз необходимо для извлечения страниц из конкретного документа.
- — output.pdf: указываем имя нового документа, в который будут сохранены извлеченные страницы.
Подробное объяснение:
-
Сохранение закладок: Когда мы убираем
--empty
из команды, qpdf фактически берет существующий файл и просто копирует указанные страницы в новый документ. В результате этого процесса сохраняются закладки, потому что документ-источник еще существует, и его метаданные не сбрасываются. -
Исправление локальных ссылок: Локальные ссылки на страницы внутри указанного диапазона автоматически изменяются в соответствии с новыми номерами страниц в документе
output.pdf
. Qpdf обрабатывает эти ссылки, сводя на нет необходимость их ручной коррекции.
Рекомендации:
- Перед выполнением операции сделайте резервную копию исходного PDF-документа.
- Убедитесь, что используете актуальную версию qpdf, так как новые функции и исправления могут появиться в последних обновлениях.
- Исследуйте дополнительные функции qpdf, запустив
qpdf --help
для ознакомления с возможностями команды.
Таким образом, используя оптимизированный подход к извлечению страниц при помощи qpdf, вы сможете сохранить структуру и функциональность оригинального документа, делая работу с PDF более эффективной и надежной.