7

我正在尝试使用 ImageMagick (6.8.0) 将多个多页 PDF 合并为一个 PDF。这个命令:

$ convert multi-page-1.pdf multi-page-2.pdf merged.pdf

返回merged.pdf,其中包含multi-page-1.pdf的第一页和multi-page-2.pdf的第一页。

这个命令:

$ convert multi-page-1.pdf[2] multi-page-2.pdf[2] merged.pdf

返回merged.pdf,其中包含multi-page-1.pdf的第三页和multi-page--2.pdf的第三页。

我想 merge.pdf 包含每个多页 pdf 的所有页面。尽管我尝试在文件名的末尾添加 [0-1] 和 [0,1],但到目前为止,我还没有找到一种方法来告诉 convert 命令使用一系列页面。

有趣的是,这个 ghostscript 命令(我通过 StackOverflow 找到但无法重新找到)确实可以按我的意愿工作:

$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf multi-page-1.pdf multi-page-2.pdf 

问题是,ImageMagick 'convert' 命令将 url 作为输入,而 ghostscript 没有,我需要我的程序接受 url 输入而不是文件路径。

是否可以使用 ImageMagick 获得上述 ghostscript 命令的结果?

4

2 回答 2

1

你为什么不使用pdfunite

例子:

$ pdfunite 1.pdf 2.pdf 3.pdf merged.pdf
于 2019-04-09T02:16:32.503 回答
0

我在公司内部论坛上问了这个问题,得出的结论是,如果不先将文件下载到本地文件系统,就无法使用 ImageMagick 进行文档合并类型。

对于那些使用 Heroku 的人,我们正在利用 Heroku 的“tmp”目录,以便在暂存和生产中“本地”保存文件:https ://devcenter.heroku.com/articles/read-only-filesystem

一旦我们将文件保存在“tmp”中,我们将遍历 pdf 的每一页并分别保存它们。我们将使用 'pdf-reader' gem 找到 PDF 页面的数量。

编辑:

这是我编写的用于处理此问题的自定义回形针处理器(所有文件都预先下拉到 tmp 目录):

https://gist.github.com/jessieay/5832466

于 2013-06-20T20:47:13.580 回答