Как структурировать существующие закладки при объединении PDF-файлов с Ghostscript?

#merge #ghostscript #bookmarks

Вопрос:

Для публикации мне нужно объединить отдельные PDF-файлы статей, в которых есть существующие закладки (контуры).

Я могу успешно сделать это с помощью Ghostscript:

 gswin32.exe -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=o.pdf a.pdf b.pdf
 

Но в результирующем файле отображаются объединенные закладки входных файлов. Вместо этого мне нужна закладка верхнего уровня с заголовком каждого входного PDF-файла и деревом закладок под ним.

Могу ли я добиться этого с помощью Ghostscript?

Я пробовал использовать pdfmarks, но эта опция, похоже, зарезервирована для создания всего дерева с нуля.

Спасибо!

Комментарии:

1. Нет, вы не можете легко сделать это с помощью устройства pdfwrite Ghostscript. Вам придется удалить контуры из исходных файлов (чтобы они не мешали) и вручную построить все дерево контуров для конечного выходного файла с помощью pdfmarks. Пожалуйста, обратите внимание; устройство pdfwrite Ghostscript не объединяет PDF-файлы, выходной PDF-файл (очевидно, в этом случае) не имеет ничего общего внутренне с входными файлами.

2. Спасибо @KenS. Мое существующее решение делает то же самое с pdftk. Я надеялся заменить его более умным решением, которое не требует лицензии. (cpdf может это сделать, но стоит $$ для коммерческого использования).