Альтернатива `pdftk multistamp`` pdftk`, когда он больше не доступен? - PullRequest
0 голосов
/ 08 июня 2018

Я использую pdftk multistamp на сервере для добавления пользовательской нумерации страниц, верхних и нижних колонтитулов в большие (500-1200 страниц) PDF-файлы.Я делаю это, подсчитывая количество страниц во входных данных, создавая подходящие пустые страницы с номерами страниц, верхними и нижними колонтитулами с помощью LaTeX, а затем использую pdftk multistamp для объединения исходного PDF и PDF со страницами, верхними и нижними колонтитулами.

Однако pdftk основан на libgcjgcj), а gcj больше не поддерживается и уже удален из GCC 7.1.Таким образом, pdftk не имеет будущего как есть.

Как объединять / объединять PDF-файлы в будущем?Я действительно хотел бы сохранить как можно больше гиперссылок между страницами, работающими в результирующих файлах PDF и метаданными.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я столкнулся с точно такой же проблемой и, в конечном итоге, столкнулся с использованием combine_pdf Ruby gem, который имеет довольно простой API и прекрасно работает.(Хотя я не знаю, насколько хорошо он поддерживает упомянутые вами гиперссылки и метаданные.) Если это вариант для вас, я очень рекомендую его.Вы должны быть хороши с коротким скриптом, который выглядит примерно так:

require "combine_pdf"
stamp_pages = CombinePDF.new(stamp_filename).pages
pdf = CombinePDF.new(base_filename)
pdf.pages.each_with_index do |page, index|
  page << stamp_pages[index > stamp_pages.size ? -1 : index]
end
pdf.save(output_filename)

До этого я использовал ImageMagick (который требует GhostScript для манипулирования PDF), но я терял много деталей при преобразовании PDF-файлов в изображения и обратно:

# Increase the `-density` number for higher quality.
# Add `+antialias` to stop ImageMagick from antialiasing your images.
convert -density 300 base_filename null: stamp_filename -compose multiply -layers composite output_filename
0 голосов
/ 22 июня 2018

Я запустил порт Java pdftk несколько месяцев назад;на данный момент он должен иметь ту же функциональность, что и версия C ++, но требуется гораздо больше тестирования.Если вы хотите попробовать, отметьте https://gitlab.com/pdftk-java/pdftk и подайте отчет об ошибке, когда он сломается.

...