- Вопрос или проблема
- Ответ или решение
- Как отредактировать оглавление в PDF файле на Linux
- 1. Использование HandyOutliner
- 2. Программа pdf.tocgen
- 3. Использование Emacs и пакета doc-toc
- 4. Инструменты для редактирования с использованием Python
- 5. Программы PdfMod и JPdfBookmarks
- 6. Функция редактирования в PDF Readers
- 7. Альтернативные подходы
- Заключение
Вопрос или проблема
Как я могу отредактировать содержание PDF-файла на Linux? Я попробовал pdfedit
, но не смог найти, где хранится список содержания.
Очень хорошей альтернативой является HandyOutliner, который работает с PDF и DJVU. Он также предоставляет очень хорошую функциональность для редактирования содержания. Он работает на GNU/Linux с mono.
Кроме того, существует очень удобный скрипт на python под названием document-contents-extractor, чтобы извлекать содержание из PDF или DJVU. Его можно установить с помощью pip (для меня на Fedora pip3 install --user document-contents-extractor
). Он требует установки некоторых дополнительных зависимостей, как указано в инструкциях здесь.
ИЗМЕНЕНИЕ
На самом деле, лучший инструмент для добавления содержания в PDF – это Emacs с использованием пакета doc-toc. Использование его требует лишь минимальных знаний о Emacs (если вы уже знаете привязки клавиш Vim, то используйте Spacemacs с toc layer). 1
Как отметил Сэм Ляо, лучший способ добавить содержание к цифровым документам (т.е. ‘не отсканированным’) – это pdf-tocgen. Это очень мощный инструмент. Пакет Emacs doc-toc делает его использование еще проще.
1 На Windows вам, вероятно, будет удобнее использовать Emacs через WSL, поскольку в противном случае трудно настроить doc-toc (для GNU/Linux или OSX это легко)
КОНЕЦ ИЗМЕНЕНИЯ
Вы можете использовать pdf.tocgen для редактирования toc
.
- используйте
pdftocio
, чтобы получитьtoc
PDF - отредактируйте
toc
- запишите обратно в PDF с помощью команды
pdftocio
.
Более того, если у PDF нет toc
, вы также можете использовать pdf.tocgen
, чтобы создать toc
несколькими способами:
- Вручную отредактируйте файл
toc
и запишите в PDF (это полезно, когда нет возможности автоматически определитьtoc
, например: PDF-файл, каждая страница которого является отсканированным изображением). - Используйте инструменты в
pdf.tocgen
, чтобы конструктивно автоматизироватьtoc
на основе различных стилей каждого уровняtoc
. Маленький скрипт можно использовать для автоматизации этого процесса, как только вы поймете, как работаетpdf.tocgen
.
Я использую две программы: PdfMod и JPdfBookmarks (также см. эту страницу SourceForge и руководство).
Я нашел JPdfBookmarks превосходным: например, можно легко изменить уровень вложенной закладки или обменять две закладки, что я не смог сделать с PdfMod.
Я ответил на это в другой теме stackexchange, но для полноты можно также упомянуть, что Pdf4Qt (Pdf4QtEditor) также может это сделать, пока вы просматриваете PDF. Вы можете использовать редактор этой программы (он также поставляется с инструментом сравнения и просмотрщиком PDF) и затем вручную добавлять записи в боковую панель оглавления/закладок и устанавливать цели. Вы также можете переименовывать их и удалять.
(У меня нет связи с этим инструментом, я просто нашел его полезным, поэтому отвечаю здесь, чтобы сообщить об этом другим).
Не было четко упомянуто, что PDFedit не имел встроенных средств для редактирования Оглавления “Закладок”, поэтому, примите к сведению, что он не смог работать с UTF-записями.
С большинством редакторов закладок вы либо можете легко редактировать на месте с помощью графического интерфейса, передвигая Страницу 3 между 2 и 4.
Либо экспортируйте, редактируйте как текст и снова импортируйте.
Большинство современных кроссплатформенных методов экспорта и импорта последовательны cpdf -list-bookmarks -utf8 source.pdf bookmarks.txt
редактируйте и снова импортируйте с коррекциями.
Это можно легко автоматизировать с помощью скриптов для редактирования на месте и, следовательно, это также могло быть сделано из PDFedit.
Вопрос касается Linux, но логические шаги одинаковы для любой ОС.
Псевдокод
"%cpdf%" -list-bookmarks -utf8 "%~dpn1.pdf" 2>nul 1>"%temp%\bookmarks-out.txt"
# например, чтобы добавить запись, используйте
echo %BkLvl% "%BkTxt%" %2 "[%2 /%BkAct%]">>"%temp%\bookmarks-out.txt"
# наконец, добавьте обратно изменения из backup.pdf в source.pdf
"%cpdf%" -add-bookmarks "%temp%\bookmarks-out.txt" "%~dpn1-bak.pdf" -o "%~dpn1.pdf"
HandyOutliner – отличный инструмент. Я использовал его на Windows 11. Просто помните, что нужно нажать “записать оглавление”, чтобы сохранить работу. Функция сохранения, похоже, не работает. Но “записать оглавление” будет работать каждый раз. Ваш файл не должен быть открыт в другой программе. Чтобы работать с ним одновременно, сделайте копию файла, а затем откройте копию и запишите в оригинальный файл.
Просто редактировать.
Чтобы отредактировать номер страницы, если содержание ведет на неправильную страницу: Откройте инструмент редактирования в PDF. Щелкните правой кнопкой мыши на строке, которую хотите отредактировать. Откроется меню … если у вас есть ссылка, там будет возможность редактирования ссылки … нажмите на нее, и откроются свойства ссылки. Выберите вкладку действий, где вы можете редактировать номер страницы. Имейте в виду, что метки на страницах могут не совпадать, если вы начали с номера страницы 1 на чем-то, кроме титульной страницы.
Если у вас только текст и нет ссылки на страницу: Откройте инструмент редактирования в PDF. Выберите “Ссылка” > “Добавить/редактировать веб-ссылку или ссылку на документ” в меню. Используйте прицел, чтобы выделить область текста, куда хотите поместить ссылку … “Создать ссылку” должно появиться, как только вы проведете рамку. Выберите действие ссылки “Перейти к просмотру страницы” и нажмите “Далее”. Должно появиться окно “Создать переход к просмотру”. Прокрутите до страницы, на которую должна вести ссылка, и нарисуйте рамку вокруг области (целая страница или раздел). Выберите кнопку “Установить ссылку”. Закройте инструмент редактирования и проверьте ссылку.
Я считаю, что если я сам настраиваю закладки с помощью формулы с переключателями в Word, а не полагаюсь на автоматическую закладку, у меня лучше получается контролировать результат при конвертации. Я также убеждаюсь, что экспортирую Word, используя Экспорт>Создать PDF/XPS документ, чтобы лучше воспроизвести Word с меньшими проблемами при конвертации.
PDF – это формат изображения. Нет хранения содержания таблицы, только “изображение” этого. Его можно редактировать только в том случае, если OCR PDF может прочитать таблицу как текст, что маловероятно. Вам нужно будет использовать другое приложение, чтобы создать таблицу, а затем конвертировать ее в PDF.
Ответ или решение
Как отредактировать оглавление в PDF файле на Linux
Редактирование оглавления (или "Table of Contents", TOC) в PDF документе на Linux может показаться сложной задачей, особенно для тех, кто не знаком с возможностями доступного программного обеспечения. Однако благодаря ряду инструментов и методов, это можно сделать достаточно эффективно. В этом ответе мы рассмотрим несколько подходов и инструментов, которые помогут вам в решении данной задачи.
1. Использование HandyOutliner
HandyOutliner – отличный инструмент для редактирования оглавления PDF и DJVU файлов. Он работает на платформе GNU/Linux с поддержкой Mono. С помощью HandyOutliner вы можете добавлять, удалять и изменять уровни вложенности элементов оглавления легко и интуитивно.
Советы по использованию HandyOutliner:
- После редактирования не забудьте нажать кнопку "Write Outline", чтобы сохранить изменения. Убедитесь, что файл не открыт в других программах, чтобы избежать потери данных.
2. Программа pdf.tocgen
Инструмент pdf.tocgen предоставляет возможность редактировать оглавление в PDF файлах следующим образом:
- Используйте команду
pdftocio
, чтобы извлечь текущее оглавление PDF. - Отредактируйте извлечённый файл оглавления.
- Запишите изменения обратно в PDF с помощью команды
pdftocio
.
Это позволяет вам получить простую и гибкую возможность редактирования содержимого оглавления.
3. Использование Emacs и пакета doc-toc
Если вы знакомы с Emacs, использование пакета doc-toc станет простым и мощным способом управления оглавлением PDF файлов. Этот метод требует лишь базовых знаний о работе в Emacs, и если вы предпочитаете Vim, можно использовать Spacemacs с пакетом toc layer.
4. Инструменты для редактирования с использованием Python
Скрипт document-contents-extractor на Python позволяет извлекать и редактировать оглавление PDF и DJVU файлов. Установить его можно с помощью pip
:
pip3 install --user document-contents-extractor
Убедитесь, что у вас установлены все необходимые зависимости, как указано в документации.
5. Программы PdfMod и JPdfBookmarks
PdfMod и JPdfBookmarks тоже предлагают функциональность для редактирования оглавлений. JPdfBookmarks позволяет легко изменять уровень вложенности закладок и упрощает управление элементами оглавления.
6. Функция редактирования в PDF Readers
Современные PDF-редакторы, такие как Pdf4Qt, позволяют вам редактировать оглавление непосредственно в боковой панели закладок. Вы можете добавлять, переименовывать и удалять закладки, что значительно упрощает работу.
7. Альтернативные подходы
Если PDF не содержит встроенного оглавления, вы можете создать его вручную, либо использовать инструменты для автоматического извлечения содержимого и создания TOC.
Заключение
Редактирование оглавления в PDF файле на Linux — это осуществимая задача, которая может быть выполнена с помощью различных инструментов, таких как HandyOutliner, pdf.tocgen, Emacs и другие. Выбор конкретного средства зависит от ваших предпочтений, уровня комфорта с инструментами командной строки и GUI. Рекомендуем протестировать несколько инструментов для выбора наиболее подходящего именно для ваших нужд.