首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ImageMagick,Ghostscript,Windows Vista/7 x64安装,测试,转换,调整PDF大小

如何使用ImageMagick,Ghostscript,Windows Vista/7 x64安装,测试,转换,调整PDF大小
EN

Stack Overflow用户
提问于 2010-07-14 12:19:18
回答 3查看 26.4K关注 0票数 13

我在让ImageMagick和Ghostscript协同工作时遇到了麻烦--从安装到测试,再到实际使用软件,一切似乎都很困难。有谁有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-30 12:30:17

我刚刚花了过去的三个小时让ImageMagick很好地发挥与PHP的PDF到JPG的转换。而不是自己在本地记录,我想我应该把它写在这里,所有的流行语和我搞砸的事情,这样下一个菜鸟可以节省一些时间。

在两个操作系统上测试,Windows7 x64和Vista x64,PHP5.2.8和Apache2.2.11。

您将需要Ghostscript和ImageMagick。我找到gs871w64.exeImageMagick-6.6.3-0-Q16-windows-x64-dll.exe了。

执行ImageMagick的基本安装(我现在将其称为IM )。仔细检查系统path变量,以确保您可以从任何地方进行IM。它应该指向IM目录。在cmdconvert test.gif test.jpg中使用下面这一行测试安装(假设您有test.gif)。工作正常。

测试PDF convert (convert test.pdf test.jpg)。您应该会收到一条关于"gswin32c.exe“、"Postscript delegate failed”和"missing an image filename“的长消息。这意味着即时通信工具找不到PDF“翻译器”。你需要Ghostscript。

安装Ghostscript (我现在称它为GS )。出于某种原因,我不得不做了两次才成功。将GS文件夹中的'bin‘地址添加到系统变量中。使用gswin32 test.pdf测试安装,您应该会在GS查看器中看到您的文件弹出。重要提示: Windows不能在 ('gs' is not recognized as an internal or external command, operable program, or batch file.)中运行。您需要使用gswin32

回到IM测试:convert test.pdf test.jpg现在应该可以工作了。

现在转到PHP -写下这个脚本:

代码语言:javascript
运行
复制
$out = shell_exec("convert blah.pdf blah2.jpg 2>&1");
echo $out;

2>&1 will move all errors into the standard output,这样您就可以更好地诊断问题:)。现在,您的PHP脚本可以在cmd提示符下运行,但是在浏览器中运行时什么也不会发生。拍拍你的额头,然后重启Apache。

我知道,它很详尽,可能也很初级。但是一个有希望有帮助的总结,大约20页半有帮助的线索。

票数 39
EN

Stack Overflow用户

发布于 2015-08-23 13:56:50

Steve已经提供了一个从PHP运行ImageMagick命令行版本的指南。在经历了安装ImageMagick扩展版本的类似经历之后,我想详细说明一下不同组件是如何协同工作的。

Imagick ( PHP扩展)

首先,您需要PHP扩展。它基本上是PHP和ImageMagick函数之间的适配器。

Copy or >从扩展名中选择一个版本在体系结构(可能是32位)、线程安全性和编译器(VC9或VC11)方面与您的版本相匹配,请参阅phpinfo

  • Copy php_imagick.dll from extension ZIP to
    • PHP extension directory

然而,这还不够。php_imagick.dll不包含任何ImageMagick功能,并且与扩展捆绑在一起的CORE_RL_... DLL不完整。您还需要更多来自ImageMagick发行版的DLL。

从理论上讲,版本不必完全匹配,但显然在Imagick 6.8.1和6.8.8之间的某个地方,函数MagickGetImageMatte已经从DLL中删除,所以最安全的方法是找到与构建Imagick扩展所针对的完全相同的ImageMagick版本:

  • 在Windows资源管理器中,请参阅捆绑的CORE_RL_wand_.dll的属性和详细信息,以查找此扩展所针对的ImageMagick版本。(您还应该能够在确切的ImageMagick版本中找到此信息,例如从http://windows.php.net/downloads/pecl/deps/ (感谢this guy提供的链接)中)
  • 将ImageMagick压缩包中的所有DLL复制到php5(n)ts.dll (Apache的PHP )为

的同一目录中

不需要安装ImageMagick。实际上,如果路径中碰巧有一个不兼容的ImageMagick,PHP扩展可能会失败。

Ghostscript

这既适用于ImageMagick (**convert**)的命令行版本,也适用于上述扩展。

要读取Postscript系列的文件,需要Ghostscript。

ImageMagick将按照以下步骤查找Ghostscript:

  • 如果注册表中有GS_DLL条目,指向gswin32.dll的路径,它将使用该条目,并忽略委托,它将查询它的“委托”。似乎有一个硬编码的回退,但您可以通过将delegates.xml分别放在php5(n)ts.dllconvert.exe旁边来覆盖它,或者在~\.magick.
  • If中它在委托中找到字符串@PS_Delegate@,它将用gswin32c.exe替换它,然后继续在路径中查找该可执行文件。您可以将此字符串替换为ImageMagick应调用的gswin32c.exe甚至gswin64c.exe的完整路径。
票数 10
EN

Stack Overflow用户

发布于 2021-07-16 02:10:45

我遇到了同样的问题,我安装了Ghostscript 9.54.0 for Windows (64位),它解决了我的问题:

遵循以下步骤:

  1. Go to https://www.ghostscript.com/download.html在"Postscript
  2. PDF解释器/渲染器:“下点击Ghostscript。它打开了一个新页面:https://www.ghostscript.com/download/gsdnld.html

  1. 从页面安装Ghostscript 9.54.0 (64位)。

  1. 下载后,将其安装在windows计算机上。

在重述内核和重新执行jupyter笔记本之后。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3243361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档