GraphicsMagick:无法将pdf转换为jpeg

时间:2017-03-15 00:24:25

标签: pdf ghostscript graphicsmagick

我正在尝试将pdf文档(95页)转换为多个JPEG文件,但收到错误:

$gm convert -verbose -density 300 TESTIO.pdf +adjoin FOO-%02d.jpg
 [ghostscript library] "-q" "-dBATCH" "-dSAFER" "-dMaxBitmap=50000000" "-dNOPAUSE" "-sDEVICE=pnmraw" "-dTextAlphaBits=4" "-dGraphicsAlphaBits=4" "-r300x300" "-sOutputFile=/tmp/gm2BfrxJ" "--" "/tmp/gmWNsJU0" "-c" "quit"Error: /ioerror in --showpage--
 Operand stack:
    1   true
 Execution stack:
    %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1862   1   3   %oparray_pop   1861   1   3   %oparray_pop   1845   1   3   %oparray_pop   --nostringval--   --nostringval--   24   1   95   --nostringval--   %for_pos_int_continue   --nostringval--   --nostringval--   1745   0   9   %oparray_pop   --nostringval--   --nostringval--
 Dictionary stack:
    --dict:1154/1684(ro)(G)--   --dict:1/20(G)--   --dict:76/200(L)--   --dict:76/200(L)--   --dict:106/127(ro)(G)--   --dict:286/300(ro)(G)--   --dict:22/25(L)--   --dict:4/6(L)--   --dict:22/40(L)--
 Current allocation mode is local
 Last OS error: 28
 GPL Ghostscript 8.70: Unrecoverable error, exit code 1
 gm convert: Unexpected end-of-file (/tmp/gm2BfrxJ). 

这是GraphicsMagick的配置:

$gm version
GraphicsMagick 1.3.25 2016-09-05 Q8 http://www.GraphicsMagick.org/
Copyright (C) 2002-2016 GraphicsMagick Group.
Additional copyrights and licenses apply to this software.
See http://www.GraphicsMagick.org/www/Copyright.html for details.

Feature Support:
  Native Thread Safe       yes
  Large Files (> 32 bit)   yes
  Large Memory (> 32 bit)  yes
  BZIP                     no
  DPS                      no
  FlashPix                 no
  FreeType                 no
  Ghostscript (Library)    yes
  JBIG                     no
  JPEG-2000                no
  JPEG                     yes
  Little CMS               no
  Loadable Modules         no
  OpenMP                   yes (200805)
  PNG                      no
  TIFF                     yes
  TRIO                     no
  UMEM                     no
  WebP                     no
  WMF                      no
  X11                      no
  XML                      no
  ZLIB                     no

Host type: x86_64-unknown-linux-gnu

Configured using the command:
  ./configure  '--prefix=/usr/local' '--with-modules=yes' '--with-libtiff' '--with-jpeg' '--with-gslib'

Final Build Parameters:
  CC       = gcc -std=gnu99
  CFLAGS   = -fopenmp -g -O2 -Wall -pthread
  CPPFLAGS =
  CXX      = g++
  CXXFLAGS = -pthread
  LDFLAGS  =
  LIBS     = -ltiff -ljpeg -lgs -lm -lgomp -lpthread

也:

$ gs -version
GPL Ghostscript 9.20 (2016-09-26)
Copyright (C) 2016 Artifex Software, Inc.  All rights reserved.

1 个答案:

答案 0 :(得分:0)

首先,您在GraphicsMagick中使用了古代版本的Ghostscript。我知道该版本已经返回9.20,但是如果查看您发布的错误日志,您将看到“GPL Ghostscript 8.70:不可恢复的错误,退出代码1”。所以你的GraphicsMagick安装使用的是8.70。

这看起来像是因为所有输出文件都被发送到相同的文件名。交换机-sOutputFile=/tmp/gm2BfrxJ会将所有页面写入单个文件。如果您希望它们转到多个文件,则需要指定多个页面输出,例如-sOutputFile=/tmp/gm2BfrxJ-%d或类似。

我怀疑问题只是因为没有设置GraphicsMagick来处理这样的多个页面文件。一次转换一页。或者让Ghostscript为您渲染页面为JPEG。