如何在 Rails 中为 Prawnto 生成的 PDF 进行内联格式(粗体和下划线)?
Posted
技术标签:
【中文标题】如何在 Rails 中为 Prawnto 生成的 PDF 进行内联格式(粗体和下划线)?【英文标题】:How can I do inline formatting (bold and underline) for PDF generated by Prawnto in Rails? 【发布时间】:2011-06-23 04:41:07 【问题描述】:我在 Rails 应用程序中使用 Prawn 和 Prawnto 插件生成了一个 PDF 文件。
我创建了一个带有标准文本区域的标准表单,并将其作为 PDF 文件的正文提交。
但是,我需要能够格式化单词和句子:
粗体 下划线 可能是不同的字体大小我希望能够在 textarea 输入框中执行此操作。现在,因为我使用 prawnto,所以我基本上是在生成一个输出 textarea 中内容的视图。
但是,如果我在文本区域中放置,比如说,bold,它不会格式化,它只是呈现。
我该怎么做?
【问题讨论】:
【参考方案1】:我们可能有类似的应用程序...
Prawn 可以基于(简单)html 进行基本的内联格式化 - 看看 github 上的 text/inline_format.rb 示例。事实上,如果你还没有看完整版 Prawn Example Gallery,那就看看 - 这是我见过的最好的之一。
要获得您需要的 HTML,您可以直接在 textarea 中输入 HTML(有点难看 - 如果除您之外的任何人都将输入文本,这可能不是一个好主意)或使用 Markdown 之类的东西来解释更用户友好的内容“样式代码”,就像 *** 一样。我认为BlueCloth 是最著名的 ruby 实现,但我自己从未使用过。
粗体和下划线?没问题。字体大小可能更难 - 我想让 BlueCloth 发出类似于他们在 Prawn 示例中使用的(已弃用的) 标签的东西会很棘手......
希望这会有所帮助 - 干杯!
【讨论】:
所以如果我只添加 inline_format => true 它将在文本区域中获取 HTML? 我正在使用 prawnto 插件,我忘记了,所以没有直接访问 PDF,只是传递带有渲染 pdf 的视图,而 prawnto 正在处理它......我怎样才能通过这种方式进行格式化? @Angela 我没听说过虾。不过,我刚刚检查了一下,它看起来很有希望。看起来它仍然使用原始的虾方法,只是在一个视图中,所以你应该在你的视图中的某个地方调用pdf.text @textarea_text
。添加:inline_format => true
选项就像你说的应该就可以了。但没有承诺 - 我还没有测试过!【参考方案2】:
响应粗体字...
在控制器中:
respond_to do |format|
format.pdf render :layout => false
prawnto :filename => @current_project+".pdf", :prawn => :font => 'Times-Roman', :inline=>false
end
然后在 pdf.prawn 文件中可以使用:
在文本框中:
pdf.text_box "Document Revisions", :size => 16, :style => :bold, :at => [0.mm,10.mm], :width => 100.mm, :height => 15.mm;
或单独在一行文本中:
pdf.text "Document Contents", :size => 16, :style => :bold;
据我了解 - 但未尝试过 - 强调您需要做的事情:
:styles => [:bold, :underline];
reference this link for more
这不是 0.8.4 版本的功能,而是 0.10.2 版本的功能 - 不知道在 0.8.4 中你会如何做下划线。我目前没有使用 0.10.2,因此无法确认这是否有效。
根据你所说的,我认为这是你想要的粗体:
pdf.text_box "#@yourtext.text", :size => 16, :style => :bold, :at => [0.mm,10.mm], :width => 100.mm, :height => 15.mm;
【讨论】:
:styles => [:bold, :underline];在 prwan 0.8.4 中不起作用,但在 github 上是最新版本。所以不确定您使用的是哪个版本。我使用的是 0.8.4,而 :style => :bold 其他的则不行。已编辑答案以涵盖此问题和其他问题。以上是关于如何在 Rails 中为 Prawnto 生成的 PDF 进行内联格式(粗体和下划线)?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ruby on Rails 4 中为 post 生成唯一的随机 id?
如何在 Rails 中为 collection_select 设置 HTML 选项?