使用Ruby / JRuby将pdf转换为图像

时间:2009-05-13 08:06:30

标签: ruby-on-rails ruby pdf jruby imagemagick

我正在寻找一种简单的方法来生成以pdf格式生成的标签的预览。如果我能将这些pdf转换为图像并在实际打印/下载之前将它们显示给用户,那就太棒了。

该应用程序当前正在Jruby on rails环境中运行,但我们很可能会切换到两个应用程序,一个在本机ruby(主应用程序)中运行,另一个在jruby(pdf工具)中运行。因此,选择并不仅限于这些世界之一。

到目前为止,我看到以下选项:

  • RMagick:看似成熟,ImageMagick作为后端,可能不适合jruby
  • RMagick4J:作为RMagick但可用于JRuby,显示为非活动状态,仅支持子集。
  • Jmagick:JNI Interface for Java,仅适用于JRuby

PDF生成本身将永远处于Jruby环境中,因此JMagick听起来是个好主意(期待可能的JNI麻烦)。另一方面,如果解决方案不限于一个平台,那将是很好的。

有什么想法吗?建议?糟糕的经历?也许是一个完全不同的想法?

谢谢!

3 个答案:

答案 0 :(得分:2)

你在Linux上吗?

sudo apt-get install imagemagick

在你的红宝石代码中

system "convert -colorspace rgb -density 150 ../path/whatever.pdf ../path/whatever.jpg"

-density是最终图像的DPI

-colorspace修复了我看到的颜色问题

答案 1 :(得分:1)

这是ImageMagick的一个非常薄的纯Ruby包装器。您可以通过一些模块方法轻松地将任何命令发送到ImageMagick:

www.misuse.org/science/2008/01/30/mojomagick-ruby-image-library-for-imagemagick /

它也应该在jruby上工作正常,因为没有DLL魔法或任何东西。

答案 2 :(得分:1)

我使用IText进行PDF生成/操作。它是一个Java jar,但从JRuby调用它真的很容易。如果将它与FlyingSaucer项目结合使用,您还可以生成图像。两者都很容易使用。