在 Ruby/Rails 中生成 PDF/HTML/DOCX 的最佳方法是什么

What is the best way to generate PDF/HTML/DOCX in Ruby/Rails

我需要创建一个应用程序,它可以根据字段自动生成简历。我需要在 PDF/HTML/DOC 中转换它们,但是有很多 gem 可用。

您认为哪种 gem 最适合制作 PDF、HTML 和 DOC 格式的简历?

找了大虾做PDF,但是做CV一样的PDF最合适吗?

提前致谢。

EDIT :我找到了一个类似于 Prawn 的 gem,但对于 docx,您可能会感兴趣。 https://github.com/trade-informatics/caracal/

我在工作中使用这些 gems,它们非常好,如果有帮助的话。

对于 html,简单的渲染就可以了。

你可以看看Ruby toolbox for available gems for pdf generation.i will recommend Prawn,因为我自己用过,需要非常简单的代码来生成pdf。

例如:-

require "prawn"

Prawn::Document.generate("hello.pdf") do
  text "Hello World!"
end

使用 Ruby 工具箱也可以找到 docx/html 的其他宝石:)

用于创作 PDF 文件

我会选择 Prawn over the Wicked-PDF

我知道 wicked 更方便,但 Prawn 既原生又更灵活。

Wicked 依赖于 wkhtmltopdf 并使用系统调用 - 系统调用会导致并发问题,并且就性能而言代价高昂。

无论你使用哪一个,我可能都会将 CombinePDF 添加到组合中 。 (我有偏见 - 我是 gem 的作者)

这将允许您使用模板 PDF 文件 - 因此您可以使用 Prawn 或 Wicked 编写您的简历,然后使用 CombinePDF gem.

将其放在设计精美的模板上

CombinePDF 也可用于创建简单的文本对象、页码或编写表格...

require 'combine_pdf'
pdf = CombinePDF.new
pdf.new_page.textbox "Hello World!", font_size: 18, opacity: 0.75
pdf.save 'test.pdf' # use pdf.to_pdf to render the PDF into a String object.

...但我认为 Prawn 是一个更好的创作工具,而 CombinePDF 是一个很好的补充库,可以添加预制内容和设计:

require 'combine_pdf'
# get a "stamp" or page template.
# the secure copy will attempt to change the PDF data to avoid name conflicts.
template = CombinePDF.load(template_file_path).pages[0].copy(true)
# move the Prawn document into CombinePDF
pdf = CombinePDF.parse prawn_document.render
# add the template to each page, putting the template on the bottom
# (#>> for bottom vs. #<< for top)
pdf.pages.each {|page| page >> template}
# save the pdf file
pdf.save 'final.pdf' # or render to string, for sending over HTTP: pdf.to_pdf

至于docx,我一无所知...坦率地说,这是一种专有格式,在进行逆向工程时通常会出现错误。我会避免它并让人们复制并粘贴 HTML 如果他们真的想要的话。

对于 DOCX,我总是使用 Prawn for PDF and Caracal

我相信 Caracal 的创建者受到了 Prawn 的易用性的启发。