Mac:无法将 .pdf 转换为 .png - GS 错误
Posted
技术标签:
【中文标题】Mac:无法将 .pdf 转换为 .png - GS 错误【英文标题】:Mac: Cannot convert .pdf to .png - GS Error 【发布时间】:2014-10-12 19:11:39 【问题描述】:我最近安装了 10.9.4 的新 Macbook。但从那以后,我不能再使用脚本将 PDF 文件转换为 PNG。我的 ImageMagick 安装似乎找不到 Ghostscript。我尝试安装了几次(使用 .pkg 安装程序),但没有任何改变。
这是我的转换命令:
convert -density 144x144 -quality 90 file.pdf file.png
我得到的只是这个:
Unrecoverable error: rangecheck in .putdeviceprops
sfopen: gs_parse_file_name failed.
./base/gsicc_manage.c:866: gsicc_open_search(): Could not find lab.icc
| ./psi/zusparam.c:856: set_lab_icc(): cannot find default lab icc profile
convert: Postscript delegate failed 'file.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/665.
convert: missing an image filename 'file.png' @ error/convert.c/ConvertImageCommand/3016.
它有点说我的 pdf 代表有问题。所以,当我查看我的 ImageMagick 安装的代表时,它也是这么说的(convert -list configure):
Path: /opt/local/lib/ImageMagick-6.7.4/config/configure.xml
Name Value
-------------------------------------------------------------------------------
CC /Developer/usr/bin/clang
CFLAGS -pipe -O2 -arch x86_64 -Wall -D_THREAD_SAFE -pthread
CODER_PATH /opt/local/lib/ImageMagick-6.7.4/modules-Q16/coders
CONFIGURE ./configure '--prefix=/opt/local' '--enable-shared' '--enable-static' '--disable- ltdl-install' '--with-frozenpaths' '--without-openexr' '--disable-hdri' '--with-dps' '--with-bzlib' '--with-fontconfig' '--with-gslib' '--with-jpeg' '--with-lcms' '--with-png' '--with-tiff' '--with-zlib' '--with-modules' '--with-xml' '--with-x' '--without-perl' '--without-fpx' '--without-jbig' '--without-jp2' '--without-wmf' '--without-gvc' '--without-rsvg' '--without-lqr' '--with-gs-font-dir=/opt/local/share/fonts/urw-fonts' '--with-quantum-depth=16' 'CC=/Developer/usr/bin/clang' 'CFLAGS=-pipe -O2 -arch x86_64' 'LDFLAGS=-L/opt/local/lib -arch x86_64' 'CPPFLAGS=-I/opt/local/include' 'CXX=/Developer/usr/bin/clang++' 'CXXFLAGS=-pipe -O2 -arch x86_64'
CONFIGURE_PATH /opt/local/etc/ImageMagick/
COPYRIGHT Copyright (C) 1999-2011 ImageMagick Studio LLC
CPPFLAGS -I/opt/local/include/ImageMagick
CXX /Developer/usr/bin/clang++
CXXFLAGS -pipe -O2 -arch x86_64 -D_THREAD_SAFE -pthread
DEFS -DHAVE_CONFIG_H
DELEGATES bzlib fontconfig freetype gs jpeg jng lcms2 lzma png tiff x11 xml zlib
DISTCHECK_CONFIG_FLAGS 'CC=/Developer/usr/bin/clang' 'CFLAGS=-pipe -O2 -arch x86_64' 'CPPFLAGS=-I/opt/local/include' 'CXX=/Developer/usr/bin/clang++' 'LDFLAGS=-L/opt/local/lib -arch x86_64' --disable-deprecated --with-quantum-depth=16 --with-umem=no --with-autotrace=no --with-fpx=no --with-fontpath= --with-gs-font-dir=/opt/local/share/fonts/urw-fonts --with-gvc=no --with-jp2=no --with-lqr=no --with-openexr=no --with-rsvg=no --with-wmf=no --with-perl=no
DOCUMENTATION_PATH /opt/local/share/doc/ImageMagick/
EXEC-PREFIX /opt/local
EXECUTABLE_PATH /opt/local/bin
FEATURES
FILTER_PATH /opt/local/lib/ImageMagick-6.7.4/modules-Q16/filters
HOST x86_64-apple-darwin11.2.0
INCLUDE_PATH /opt/local/include/ImageMagick
LDFLAGS -L/opt/local/lib -L/opt/local/lib -arch x86_64 -L/opt/local/lib -L/opt/local/lib
LIB_VERSION 0x674
LIB_VERSION_NUMBER 6,7,4,0
LIBRARY_PATH /opt/local/lib/ImageMagick-6.7.4
LIBS -lMagickCore -llcms2 -ltiff -lfreetype -ljpeg -L/opt/local/lib -lfontconfig -lXext -lSM -lICE -lX11 -lXt -L/opt/local/lib -llzma -lbz2 -lz -lm -lgomp -lpthread -lltdl
NAME ImageMagick
PCFLAGS
PREFIX /opt/local
QuantumDepth 16
RELEASE_DATE 2012-01-09
SHARE_PATH /opt/local/share/ImageMagick-6.7.4
SVN_REVISION 6163
TARGET_CPU x86_64
TARGET_OS darwin11.2.0
TARGET_VENDOR apple
VERSION 6.7.4
WEBSITE http://www.imagemagick.org
Path: [built-in]
Name Value`
-------------------------------------------------------------------------------
NAME ImageMagick
所以,我猜委托线是有趣的:
bzlib fontconfig freetype gs jpeg jng lcms2 lzma png tiff x11 xml zlib
那里没有 PDF,但是如何添加呢?如果您认为我没有安装 ghostscript(谷歌建议的许多提示),这是我的 ghostscript 安装:
GPL Ghostscript 9.04 (2011-08-05)
Copyright (C) 2011 Artifex Software, Inc. All rights reserved.
那么,这里有什么问题? “只是” PDF 委托丢失了吗?但是我该如何添加呢? GS可能配置错误吗?我能做些什么来修复它?任何建议都将受到高度赞赏 - 我完全没有想法!
非常感谢!
【问题讨论】:
【参考方案1】:ImageMagick 正在寻找 Ghostscript,因为:
sfopen: gs_parse_file_name failed.
./base/gsicc_manage.c:866: gsicc_open_search(): Could not find lab.icc
./psi/zusparam.c:856: set_lab_icc(): cannot find default lab icc profile
是一堆来自 Ghostscript 的错误信息。首先要做的是尝试从命令行而不是从 ImageMagick 内部运行 Ghostscript 本身。显然,您已经尝试过运行 GS 本身(来自您的帖子),但是您是否尝试过使用相关的输入文件?例如:
./gs -sDEVICE=png16m -o out.png 文件.pdf
如果可行,那么它是 ImageMagick 传递给 Ghostscript 的命令行特有的东西,您将不得不询问了解 ImageMagick 的人如何确定这一点。我发现一个网站声称 ImageMagick 转换了两次,首先从 PDF 转换为 PostScript,然后将 PostScript 转换为 PNG。因此您可能需要确定这是否属实,如果是,则哪个步骤导致了问题。
您也可以考虑试用 Ghostscript 的最新版本 9.15,您使用的版本(显然)已有 3 年历史。
【讨论】:
以上是关于Mac:无法将 .pdf 转换为 .png - GS 错误的主要内容,如果未能解决你的问题,请参考以下文章
imagemagick 将 RGB PNG 转换为 CMYK PDF