ImageMagick/Ghostscript 覆盖 PDF 文件的第一页


ImageMagick/Ghostscript overwrites first page of PDF file

今天开始,在升级到Ghostscript 9.15和ImageMagick 6.9.0-4之后,我有一个奇怪的行为。我正在尝试将一些多页PDF文件转换为多个JPEG文件。

问题是PDF文件

的第一页(0 JPG文件)被软件覆盖为PDF文件的最后一页。例如,启动命令:

 convert -verbose -define jpeg0 -thumbnail x400 -flatten '
   -background white /uploads/54b534908aa9b.pdf  '
   /small0115/54b534908aa9b_%d.jpg

会给我所有页面,除了第一页,它被最后一页取代。

对于此 52 页 PDF 文件,-verbose选项的输出打印如下:

/uploads/54b534908aa9b.pdf[0] PDF 694x1224 694x1224+0+0 16-bit sRGB 944KB 0.000u 0:00.000
.......
/uploads/54b534908aa9b.pdf[50] PDF 694x1224 694x1224+0+0 16-bit sRGB 944KB 0.000u 0:00.000
/uploads/54b534908aa9b.pdf[51] PDF 694x1224 694x1224+0+0 16-bit sRGB 944KB 0.000u 0:00.000
/uploads/54b534908aa9b.pdf=>/small0115/54b534908aa9b_0.jpg PDF

据我所知,该软件会自动再次写入第一页,但使用最后一页来执行此操作,而不是保持原样。

此问题的解决方法是再次生成文件的第一页,但这只是一个解决方法,而不是程序员的可行解决方案:)

试试这个命令:

convert                        '
  -verbose                     '
   /uploads/54b534908aa9b.pdf  '
  -thumbnail x400              '
   /small0115/54b534908aa9b.jpg

生成的文件将自动编号为 54b534908aa9b-0.jpg54b534908aa9b-1.jpg54b534908aa9b-2.jpg ... 54b534908aa9b-51.jpg .


言论:

  1. 我不明白您的-define jpeg0参数应该实现什么。这是错别字吗?

  2. 此外,-flatten没有任何影响(Ghostscript - 由ImageMagick用于将PDF处理成光栅文件,然后IM可以处理 - 无论如何都无法处理PDF图层。

  3. 此外-background white不会有任何影响:如果PDF页面具有彩色"背景",则生成的JPEG将具有相同的颜色背景。如果PDF页面具有透明背景(最常见的是PDF),则JPEG文件格式无法处理它,并且背景将显示为白色...