我使用Prawn和我的rails应用程序中的Prawnto插件生成PDF文件。
我使用标准文本区域创建标准表单,并将其作为PDF文件的正文提交。
但是,我需要能够使用以下内容格式化单词和句子
我希望能够在textarea输入框中执行此操作。现在,因为我使用了prawnto,所以我基本上会产生一个视图,它输出textarea中的内容。
但是如果我在文本区域中输入粗体,它就不会格式化,只会渲染。
我该怎么做?
答案 0 :(得分:9)
我们可能有类似的应用...
Prawn可以基于(简单)HTML进行基本的内联格式化 - 看看github上的text/inline_format.rb示例。事实上,看看整个Prawn Example Gallery,如果你还没有 - 这是我见过的最好的之一。
要获得您需要的HTML,您可以直接在textarea中输入HTML(有点难看 - 如果除了你之外的任何人都会输入文本可能不是一个好主意)或使用像Markdown这样的东西来解释更加用户友好的“样式代码“像StackOverflow那样。我认为BlueCloth是最着名的ruby实现,但我自己从未使用它。
大胆并强调?没问题。字体大小可能更难 - 我想让BlueCloth发出像(不推荐的)<这样的东西是很棘手的。字体>他们在Prawn示例中使用的标签......
希望这会有所帮助 - 干杯!
答案 1 :(得分:2)
回应粗体文字......
在控制器中:
respond_to do | format |
format.pdf {render:layout =>假}
prawnto:filename => @current_project +“。pdf”,: prawn => {:font => 'Times-Roman'},:inline => false
端
然后在pdf.prawn文件中你可以使用:
在文本框中:
pdf.text_box“文件修订”,:size => 16,:style => :bold,:at => [0.mm,10.mm],:width => 100.mm,:height => 15.mm;
或单独的一行文字:
pdf.text“文件内容”,:size => 16,:style => :粗体;
据我了解 - 但未尝试过 - 强调你需要这样做:
:styles => [:bold,:underline];
这不是版本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;