0

我有这个代码:

require 'java'
require 'iText-5.0.6.jar'

module Pdf
  include_package "com.itextpdf.text.pdf"
  include_package "java.io"

  def self.write
    reader = PdfReader.new('application.pdf');
    stamper = PdfStamper.new(reader, FileOutputStream.new('completed.pdf'))
    form = stamper.acro_fields
    puts "Form has these fields: #{form.fields.key_set.to_a}"
    form.set_field("some_zipcode_field", "94115")
    stamper.close
  end
end

Pdf.write

jRuby,我想翻译成Ruby,使用rjb

任何人现在我该怎么做?

4

3 回答 3

2

可以通过“RJB”(Ruby-Java 桥)使用来自常规 Ruby 的 iText 之类的库。我不知道 RJB 中调用的正确顺序来实现这一点,但这是可能的,而且我知道有人这样做。

另一种方法是使用纯 Ruby “虾”库,它在 JRuby 和 Ruby 上都可以正常工作

于 2011-09-15T17:03:34.727 回答
0

如果您使用的是 iText 之类的 Java 库,则不能。您需要修改代码以使用不同的 PDF 库,以便它在 C Ruby 中工作。

于 2011-09-15T16:49:56.703 回答
0

显然, rjb 站点将帮助提供更多细节RJB。不幸的是,我不认为它涵盖了它的所有功能。

我不认为你可以在 RJB 中加载整个包,但由于你只使用少数几个类,你可以进行单独的导入:

JString = Rjb::import('java.lang.String')

我还认为 Rjb 没有 Java 方法的所有快捷别名,因此您最终可能需要 setField 而不是 set_field 或 field=。我不是 Rjb 用户,但我真的很想与 Rjb 合作以使我们的两种语法更加兼容。[注意:当你设置 Rjb 时,你可能想挑战这个建议......我只是从未见过其中包含快捷方式的示例]

于 2011-09-15T17:09:17.783 回答