Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ImageMagick将多页PDF合并为一个PDF_Imagemagick_Ghostscript - Fatal编程技术网

使用ImageMagick将多页PDF合并为一个PDF

使用ImageMagick将多页PDF合并为一个PDF,imagemagick,ghostscript,Imagemagick,Ghostscript,我正在尝试使用ImageMagick(6.8.0)将多页PDF合并成一个PDF。此命令: $ convert multi-page-1.pdf multi-page-2.pdf merged.pdf $ convert multi-page-1.pdf[2] multi-page-2.pdf[2] merged.pdf 返回merged.pdf,其中包含multi-page-1.pdf的第一个页面和multi-page-2.pdf的第一个页面 此命令: $ convert multi-pag

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

$ convert multi-page-1.pdf multi-page-2.pdf merged.pdf
$ convert multi-page-1.pdf[2] multi-page-2.pdf[2] merged.pdf
返回merged.pdf,其中包含multi-page-1.pdf的第一个页面和multi-page-2.pdf的第一个页面

此命令:

$ convert multi-page-1.pdf multi-page-2.pdf merged.pdf
$ convert multi-page-1.pdf[2] multi-page-2.pdf[2] merged.pdf
返回merged.pdf,其中包含multi-page-1.pdf的第三个页面和multi-page-2.pdf的第三个页面

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

有趣的是,这个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命令的结果?

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

对于使用Heroku的用户,我们正在利用Heroku‘tmp’目录,以便在登台和生产时“本地”保存文件:

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

编辑:

这是我编写的定制曲别针处理器,用于处理此问题(所有文件都会事先下拉到tmp目录):

为什么不使用

例如:

$pdfunite 1.pdf 2.pdf 3.pdf合并.pdf

需要指出的是,当ImageMagick读取矢量PDF时,它会将其光栅化。如果随后创建一个新的PDF,它将是矢量壳中的光栅图像,并且与光栅化图像一样大。因此,使用ImageMagick并不是一个好主意。