【问题标题】:Prawn How can I fill a form Field using Prawn?Prawn 如何使用 Prawn 填写表单字段?
【发布时间】:2012-02-17 11:11:09
【问题描述】:

我在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 预填充了 RMA 表单的多个表单域。

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

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

我希望有一些类似的代码

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

这将按预期填充 pdf 的表单字段,并使我免于硬编码每个模板设计的绝对位置。

【问题讨论】:

    标签: ruby-on-rails templates prawn


    【解决方案1】:

    我没有尝试过这个,但我从示例中注意到:at =&gt; [x, y] 是一个强制选项,用于将元素精确定位在(x, y)文档的位置。

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

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

    另一种选择是您可以将每个字段的这些位置值保留在 yml 文件中,并在代码中重复使用而不是硬编码。

    【讨论】:

    • 我想你误会了。模板可能会更改,因此可能会更改例如电子邮件字段的位置,但仍然会有一个电子邮件字段。如果我使用 :at=>[x, y] 编码,我必须在模板的每次更改时重新编程位置。
    • 有没有办法阅读现有的 PDF 并以编程方式查找现有字段的位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    相关资源
    最近更新 更多