我有这段代码:
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
任何人都知道我该怎么做?
答案 0 :(得分:2)
可以通过“RJB”(Ruby-Java桥)使用常规Ruby中的iText等库。我不知道RJB中的正确呼叫顺序是为了实现这一目标,但这是可能的,我知道有人这样做。
另一种方法是使用纯Ruby“prawn”库,它在JRuby和Ruby上都可以正常工作
答案 1 :(得分:0)
如果你正在使用像iText这样的Java库,那么你就不能。您需要修改代码以使用不同的PDF库,以使其在C Ruby中工作。
答案 2 :(得分:0)
显然,rjb网站将提供更具体的细节RJB。不幸的是,我不认为它涵盖了它的所有功能。
我认为你不能在RJB中加载整个软件包,但由于你只使用少数几个类,你可以单独导入:
JString = Rjb :: import('java.lang.String')
我还认为Rjb没有Java方法的所有快捷方式别名,因此您最终可能需要setField而不是set_field或field =。我不是Rjb用户,但我真的想与Rjb合作,使我们的两种语法更兼容。 [注意:当你设置Rjb时,你可能想挑战这个建议......我从来没有见过一个带有快捷方式的例子]