我有这样的代码:
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
有人知道我该怎么做吗?
可以通过"RJB" (Ruby- java桥)从普通Ruby中使用iText等库。我不知道RJB中正确的调用顺序是什么,但这是可能的,我知道有人在这样做。
另一种选择是使用纯Ruby的"prawn"库,它在JRuby和Ruby
如果您使用的是iText之类的Java库,那么您就不能。您需要修改代码以使用不同的PDF库,以便在C Ruby中工作。
显然,rjb站点将帮助您了解rjb的更多细节。遗憾的是,我认为它没有涵盖它的所有功能。
我不认为你可以在RJB中加载整个包,但是因为你只使用少量的类,你可以单独导入:
JString = Rjb::import('java.lang.String')
我还认为Rjb没有Java方法的所有快捷别名,因此您可能最终需要setField而不是set_field或field=。我不是Rjb用户,但我真的很想与Rjb合作,使我们的两种语法更加兼容。[注:当你安装Rjb时,你可能想要挑战这个建议……我只是从来没有见过有快捷键的例子]