我正在尝试使用ImageMagick的(call-process "convert" nil "test" t "/path/to/test.pdf" "/path/to/test.png")
工具将PDF格式转换为来自Emacs的png。我使用以下elisp命令:
convert: no images defined `/path/to/test.png' @ error/convert.c/ConvertImageCommand/3241.
给出了结果
$ convert test.pdf test.png
但是,如果我跑
convert
从命令终端一切正常,我得到了正确的png文件。
以下是我的尝试:
exec-path
的路径位于Emacs gs
变量中call-process
是否可用(来自终端和convert
,因为这似乎在我在网上看到的其他地方引起类似的问题我在Mac OSX(Yosemite)上使用Emacs 24.5,在Homebrew上安装了ImageMagick 6.9.2-10,在homebrew上安装了Ghostscript 9.07。
任何帮助将不胜感激。顺便说一句,从Emacs使用call-process
的动机是我可以从org-mode / org-babel(使用几乎相同的{{1}}命令)导出Latex(tikz)图块,所以我真的需要让这个工作"按原样#34;而不是一个解决方案。谢谢!
答案 0 :(得分:0)
我通常会使用emacs命令shell-commando(M-!)或M-x shell-command,然后将/path/to/pdf.pdf /path/to/pdf.png转换。通常,它应该与现有目录更好地配合 或者,如果您想使用emacs lisp,则可以在缓冲区内使用emacs打开目录,然后在该缓冲区上执行ielm。
对于执行此命令,我还建议您使用功能shell-command。这是ielm和消息中的输出:
ELISP> (shell-command "ls")
0 (#o0, #x0, ?\C-@)
ELISP> (shell-command "ls")
0 (#o0, #x0, ?\C-@)
ELISP> (shell-command "convert pdf.pdf pdf.png")
0 (#o0, #x0, ?\C-@)
ELISP> (shell-command "ls")
0 (#o0, #x0, ?\C-@)
ELISP> (shell-command "pwd")
0 (#o0, #x0, ?\C-@)
如果tuou要使用调用处理,则正确的语法将是:
ELISP> (call-process "convert" nil t nil "pdf.pdf" "pdf.png")