6

pdftk multistamp在服务器上使用为大型(500-1200 页)PDF 文件添加自定义页码、页眉和页脚。我通过计算输入中的页数来做到这一点,使用 LaTeX 创建带有页码、页眉和页脚的合适的空白页面,然后使用pdftk multistamp将原始 PDF 和 PDF 与页面、页眉和页脚结合起来。

然而,pdftk基于libgcj(and gcj) 并且gcj不再维护并且已经从 GCC 7.1 中删除。因此,pdftk没有任何未来。

以后如何合并/合并PDF文件?我真的希望在生成的 PDF 文件和元数据中尽可能多地保留页面之间的超链接。

4

2 回答 2

4

几个月前我开始了 pdftk 的 Java 端口;此时它应该具有与 C++ 版本相同的功能,但需要进行更多测试。如果您想尝试一下,请检查https://gitlab.com/pdftk-java/pdftk并在它发生故障时提交错误报告。

于 2018-06-22T10:41:38.197 回答
0

我遇到了完全相同的问题,最终决定使用combine_pdfRuby 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
于 2018-12-21T18:51:38.903 回答