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

将多页 PDF 转换为单个图像

在Google云端存储上将PDF转换为PNG

将 PDF 转换为 PNG

使用 ImageMagick 将 pdf 转换为 png 时出错

UWP C# 将 png 转换为 pdf