【问题标题】:ImageMagick/Ghostscript overwrites first page of PDF fileImageMagick/Ghostscript 覆盖 PDF 文件的第一页
【发布时间】:2015-04-01 15:12:50
【问题描述】:

从今天开始,我升级到 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

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

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

【问题讨论】:

标签: php imagemagick ghostscript imagemagick-convert


【解决方案1】:

试试这个命令:

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 使用 Ghostscript 将 PDF 处理成光栅文件,然后 IM 可以处理——无论如何都无法处理 PDF 图层。)

  3. 同样-background white 不会有任何效果:如果 PDF 页面有彩色“背景”,则生成的 JPEG 将具有相同的颜色背景。如果 PDF 页面有透明背景(最常见于 PDF),那么 JPEG 文件格式无法处理,背景会显示为白色...

【讨论】:

  • @petru:那么,你看到我的回答了吗?有帮助吗?
猜你喜欢
  • 2011-06-16
  • 1970-01-01
  • 2012-02-19
  • 2011-06-10
  • 1970-01-01
  • 2012-08-17
  • 2023-03-18
  • 1970-01-01
  • 2021-10-02
相关资源
最近更新 更多