我遇到了完全相同的问题,最终决定使用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