Вы можете использовать pdftk
для этого. Подробнее: Как экспортировать и импортировать PDF закладки .
Экспортируйте закладки PDF в командной строке следующим образом:
pdftk C:\Users\Sid\Desktop\doc.pdf dump_data output C:\Users\Sid\Desktop\doc_data.txt
Импортируйте закладки PDF из файла данных следующим образом:
pdftk C:\Users\Sid\Desktop\doc.pdf update_info C:\Users\Sid\Desktop\doc_data.txt output C:\Users\Sid\Desktop\updated.pdf
pdftk
Формат закладки немного утомительно писать. Вместо этого я создал свой собственный сценарий , используя bash
, sed
, pdftk
и python3
. Проверьте это в этом репо: https://github.com/SiddharthPant/booky
Так что теперь я могу создать такой текстовый файл ( bkmrks.txt
), который займет всего 5 минут, даже для 1000 страниц PDF.
{
Title1, 1
Title2, 2
{
Subtitle1, 3
Subtitle2, 4
{
SubSubtitle1, 5
...
}
}
}
а затем использовать мой скрипт
./booky.sh pdf_file.pdf bkmrks.txt
это автоматически создает pdf ( pdf_file_new.pdf
), в котором есть мои закладки.
Это будет работать в * nix системах, если вы вместо этого работаете на Windows-машине. Затем сначала установите python3
и pdftk
просто используйте booky.py
файл в репозитории для конвертации bkmrks.txt
в pdftk
совместимый формат
python3 booky.py < bkmrks.txt > output.txt
а затем с помощью команды экспорта создать файл данных с дампом. Удалите предыдущие закладки из этого файла и вставьте output.txt
вместо них содержимое, используя простую копию вставки. А затем импортируйте эти данные обратно.
Спецификация для файлов PDF доступна в виде свободно загружаемого PDF от Adobe - или, по крайней мере, это было в прошлый раз, когда я проверял. Однако большинство файлов PDF содержат наиболее сжимаемые данные. Возможно, когда-то давно существовала в основном текстовая версия PDF, и если это так, то она все еще будет действительна сейчас, но на самом деле получение файла в такой форме может быть проблемой.
Хотя я этого не делал, одна из наиболее вероятных возможностей (если вы готовы платить) - это купить Acrobat Pro и использовать возможности сценариев Javascript, встроенные в это приложение. Для начала ...
http://acrobatusers.com/tutorials/2008/10/auto_bookmark_creation
В этом руководстве показано, как автоматически создавать закладки с помощью Javascript в Acrobat 7.0 Pro (версия включена в Creative Suite CS2). Хотя это становится немного старым, та же самая техника должна хорошо работать для более новых версий.
Приложения Adobe включают в себя библиотеку для чтения / записи текстовых файлов с использованием Javascript (то, чего у Javascript нет в стандартной комплектации), поэтому можно написать свои собственные сценарии импорта / экспорта, хотя это не так просто, чтобы сделать эти сценарии надежными.
источник
Для экспорта закладок я использую другой подход, который требует использования Microsoft OneNote:
Я открываю программу чтения PDF (использую бесплатную версию Foxit) с видимой структурой закладок, а затем в OneNote прошу сделать снимок и выбрать структуру закладок Foxit.
Возвращаясь к OneNote, я выбираю опцию «Копировать текст из изображения» (в меню, которое появляется после щелчка правой кнопкой мыши по изображению) и вставляю его сбоку, чтобы исправить отступы (обычно с маркерами).
источник
HandyOutline. 1 перетаскивание, 1 клик, готово. https://sourceforge.net/projects/handyoutlinerfo/ . Свободный. Отступы вложенных закладок. Не требует никакого читателя PDF / редактора. Также редактируйте, экспортируйте все детали в текст (скопируйте в слово, напишите макрос, чтобы привести его в полнофункциональный текстовый документ) или в XML, перепроверьте, импортируйте в PDF. Дев заслуживает пожертвований.
PDF-Xchange Editor (заменен PDFViewer), случайно скопированные / пропущенные закладки экспортируются в текст
JPDF требовал Java, экспортировал мусор форматирования, не мог очистить его, чтобы получить только имена
PDFtk дал мне головную боль, просто глядя на инструкции
:-)
источник
Я нашел другое довольно «глупое» решение, чтобы скопировать все закладки в PDF как текст для использования в другом месте. В Acrobat Pro (для Mac OS) нет возможности выбрать все закладки и скопировать / вставить их в Wordprocessor. Однако вы можете экспортировать весь PDF-файл в виде HTML-файла с опцией «одна HTML-страница + добавить навигационный кадр на основе закладок». Затем откройте HTML в браузере, выделите весь текст в навигационной рамке и скопируйте / вставьте его в текстовый процессор ...
источник
Чтобы прочитать все закладки из PDF-файла в текстовый файл, вы можете использовать эту команду с
pdftk
:Затем я использовал регулярные выражения в Notepad ++, чтобы удалить лишние части. Следующее я заменил пустой строкой (по порядку), а затем у меня появился список закладок (не забудьте заменить с помощью регулярных выражений в вашем текстовом редакторе):
Если вы хотите удалить цифры, замените это выражение:
источник