从命令行将一个 pdf 与另一个 pdf 叠加:pdftk alternative?

overlay one pdf with another from the command line: pdftk alternative?

我用一个bash脚本来auto-generate一个pdf日历每个month.I使用精彩提醒程序作为这个例程的基础。尽管我使用该程序获得的日历很棒,但我需要更详细的日历 header(不仅仅是月份和年份的名称)。我无法想出一种方法来让提醒程序增强 header,但我能够通过创建包含我需要的 header 增强功能的第二个 pdf 来获得我想要的增强结果,然后通过 pdftk 实用程序 (pdftk calendar.pdf stamp calendar_overlay.pdf output MONTH-YEAR-cal.pdf),将该 pdf 叠加到我制作的日历上。不幸的是,我最近失去了使用 pdftk 的能力,因为将它保留在我的系统上将迫使我停止进行其他系统更新。简而言之,我必须将其删除才能继续更新我的系统。

所以现在我正在寻找可以合并到我的 bash 脚本中的替代方法。我没有找到任何实用程序可以让我将一个 pdf 与另一个 pdf 叠加,就像 pdftk 允许的那样。在使用 imagemagick (-convert) 之后,我似乎可以做一些类似的事情,尽管我可能需要用 .jpg 之类的图像文件而不是 pdf 来覆盖 pdf。另一种可能的解决方案可能是使用 TeX/LaTeX 将文本插入到 pdf 中,如 https://rsmith.home.xs4all.nl/howto/adding-text-or-graphics-to-a-pdf-file.html.

中所述

我想在这里问,在投入大量时间和精力来追求我确定的两个潜在选项中的一个或另一个之前,是否有其他方法,使用可以合并到的命令行选项一个 bash 脚本,以描述的方式将一个 pdf 与另一个 pdf 叠加?将不胜感激。

后期编辑:另一个 link 指示如何使用 LaTeX 做这些事情 https://askubuntu.com/questions/712691/batch-add-header-footer-to-pdf-files

为简单起见,假设您的两个文件的大小均为 500pt x 200pt, 您可以使用带有 nupdelta 选项的 pdfjam 来欺骗它覆盖您的源 pdf 文件。

pdfjam bottom.pdf top.pdf --outfile merged.pdf \
    --nup "1x2" \
    --noautoscale true \
    --delta "0 -200pt" \
    --papersize "{500pt, 200pt}"

不幸的是,我在测试中发现我需要将 y delta 增加一个点才能获得完美对齐。

pdftk-java 是一个基于 Java 的 pdftk 端口,它看起来正在积极开发中。鉴于它唯一真正的要求似乎是 Java 7+,即使在您自己的不再支持 pdftk 要求的环境中,只要安装了 Java 运行时,它也应该可以工作。