【问题标题】:Converting pdf to images using Ruby/JRuby使用 Ruby/JRuby 将 pdf 转换为图像
【发布时间】:2010-10-25 19:05:27
【问题描述】:

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

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

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

  • RMagick:看起来很成熟,ImageMagick 作为后端,可能不适用于 jruby
  • RMagick4J:作为 RMagick 但可用于 JRuby,显示为非活动状态,仅支持子集。
  • Jmagick:Java 的 JNI 接口,仅适用于 JRuby

PDF 生成本身将始终在 Jruby 环境中,因此 JMagick 听起来是个好主意(预计可能会出现 JNI 麻烦)。另一方面,如果解决方案不限于一个平台,那就太好了。

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

谢谢!

【问题讨论】:

  • Jmagick 似乎链接到一个固定的,相当旧的版本:/。
  • 感谢指点!我的问题也是关于整合它的最佳方式。但是,它可能会是 convert/Imagemagick.... 但也许其他人有更好的主意。

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


【解决方案1】:

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

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

它在 jruby 上也应该可以正常工作,因为没有 DLL 魔法或任何引擎盖下的东西。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      你在 Linux 上吗?

      sudo apt-get install imagemagick
      

      在你的 ruby​​ 代码中做

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

      -密度是最终图像的DPI

      -colorspace 修复了我在颜色不可见时遇到的问题

      【讨论】:

      • 我们很久以前就使用了 convert :)。
      猜你喜欢
      • 2011-02-27
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多