如何对 Rails 中 Prawnto 生成的 PDF 进行内联格式(粗体和下划线)?

发布于 2024-10-16 12:06:48 字数 317 浏览 5 评论 0原文

我在 Rails 应用程序中使用 Prawn 和 Prawnto 插件生成 PDF 文件。

我创建一个带有标准文本区域的标准表单,并将其作为 PDF 文件的正文提交。

但是,我需要能够使用以下方式格式化单词和句子:

  • 粗体
  • 下划线
  • 可能不同的字体大小

我希望能够在文本区域输入框中执行此操作。现在,因为我使用 prawnto,所以我基本上正在生成一个输出文本区域中内容的视图。

但是,如果我在文本区域中输入粗体,它不会格式化,只会呈现。

我该怎么做?

I generate a PDF file using Prawn and the Prawnto plugin in my rails application.

I create a standard form with a standard textarea, and submit that as the body of the PDF file.

However, I need to be able to format words and sentences with:

  • bold
  • underline
  • maybe different type sizes

I want to be able to do it from within the textarea input box. Right now, because I use prawnto, I basically am genering a view which outputs what is in the textarea.

But if I put, say, bold in the text area, it doesn't format, it just renders.

How do I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅黛梨妆こ 2024-10-23 12:06:49

我们可能有类似的应用程序...

Prawn 可以基于(简单)HTML 进行基本的内联格式化 - 看看 text/inline_format.rb github 上的示例。事实上,如果您还没有看过整个 Prawn 示例库, - 这是我见过的最好的之一。

要获取您需要的 HTML,您可以直接在文本区域中输入 HTML(有点难看 - 如果除了您之外的任何人都输入文本,这可能不是一个好主意),或者使用 Markdown 之类的东西来解释更用户友好的“样式代码”就像 StackOverflow 所做的那样。我认为 BlueCloth 是最著名的 ruby​​ 实现,但我自己从未使用过它。

粗体和下划线?没问题。字体大小可能会更难 - 我想让 BlueCloth 发出类似(已弃用)< 的内容会很棘手。字体>他们在 Prawn 示例中使用的标签...

希望这有帮助 - 干杯!

we may have similar apps...

Prawn can do basic inline formatting based on (simple) HTML - take a look at the text/inline_format.rb example on github. In fact, take a look at the whole Prawn Example Gallery if you haven't - it's one of the best I've seen.

To get the HTML you need you can either type HTML straight into the textarea (a bit ugly - might not be a good idea if anyone besides you will be entering text) or use something like Markdown to interpret more user-friendly "style codes" like StackOverflow does. I think BlueCloth is the best-known ruby implementation, but I've never used it myself.

Bold and underline? No problem. Font size might be harder - I imagine it would be tricky to get BlueCloth to emit something like the (deprecated) < font > tag they use in the Prawn example...

Hope this helps - cheers!

俏︾媚 2024-10-23 12:06:49

响应粗体文本...

在控制器中:

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];

参考此链接了解更多

这是不是 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;

In response to bold text...

In controller:

respond_to do |format|
  format.pdf  {render :layout => false}
  prawnto :filename => @current_project+".pdf", :prawn => {:font => 'Times-Roman'}, :inline=>false     
end

Then in pdf.prawn file you can use:

in a text box:

pdf.text_box "Document Revisions", :size => 16, :style => :bold, :at => [0.mm,10.mm], :width => 100.mm, :height => 15.mm;

or in a line of text on its own:

pdf.text "Document Contents", :size => 16, :style => :bold;

As I understand it - but not tried it - to underline you need to do:

:styles => [:bold, :underline];

reference this link for more

This is not a feature of version 0.8.4 but version 0.10.2 - not sure how you would do underline in 0.8.4. I am not currently using 0.10.2 so can not confirm that this is works.

Based on what you have said I think this is what you want to for bold:

pdf.text_box "#{@yourtext.text}", :size => 16, :style => :bold, :at => [0.mm,10.mm], :width => 100.mm, :height => 15.mm;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文