我在服务器上使用pdftk multistamp
将自定义页面编号,页眉和页脚添加到大(500-1200页)PDF文件中。我这样做是通过计算输入中的页数,使用LaTeX创建包含页码,页眉和页脚的合适空页,然后使用pdftk multistamp
将原始PDF和PDF与页面,页眉和页脚组合在一起。
但是,pdftk
基于libgcj
(和gcj
),gcj
已不再维护,并且已从GCC 7.1中删除。因此,pdftk
没有任何未来。
将来如何合并/合并PDF文件?我真的希望尽可能地保持生成PDF文件和元数据的页面之间的超链接。
答案 0 :(得分:1)
几个月前,我启动了pdftk的Java端口。在这一点上,它应该具有与C ++版本相同的功能,但是还需要更多的测试。如果您想尝试一下,请检查https://gitlab.com/pdftk-java/pdftk并在中断时提交错误报告。
答案 1 :(得分:0)
我遇到了完全相同的问题,并最终着手使用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(PDF操作需要GhostScript),但是在从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