2012-02-17 66 views
3

我在rails 3.0应用程序中使用了Prawn Gem 0.12.0虾我如何填写表单字段使用虾?

我的文件显示了罚款:

class TemplatePdf < Prawn::Document 
def initialize 

filename= "#{Prawn::BASEDIR}/data/pdfs/RMA_Formular.pdf" 
     super(:template => filename) 
     text_box "2005-xxxx1055", :at=>[40,472] 
     text_box "#{current_user.email}", :at =>[280, 472] 
     text_box ... 
... 
end 

的text_box prefills的RMA形式的几个表单字段。

我想使用pdf的表单字段的字段名称,而不是使用text_box "xxx", :at=>[x, y]手动定位它们。

那么有没有办法将例如用户的电子邮件发送到电子邮件表单字段?

我希望一些代码,就像

template.fields[:email] => current_user.email 

这将填补PDF格式的表单字段预期,救我脱离硬编码绝对位置为每个模板设计。

回答

-1

我还没有试过这一个,但我从实施例中注意到,:at => [x, y]必要选项并用于在文档(x, y)位置移动到元件恰好定位。

如果你不想在(x,y)位置准确定位,您可以使用text方法如下

text "Some string" 
move_down 20 
text "Some other string" 

另一种办法是,你可以在一个YML文件保存这些位置值的每个字段并在代码中重复使用而不是硬编码。

+0

我想你错过了。模板可能会改变,所以可能会改变例如电子邮件字段的位置,但仍然会有一个电子邮件字段。如果我使用:at => [x,y]编码,则必须在模板的每次更改时重新编程位置。 – chris 2012-02-17 13:05:49

+0

有没有方法可以读取现有的PDF并找出现有字段在何处进行编程。 – holaSenor 2012-06-25 16:27:49