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

7
我需要创建一个应用程序,可以从字段中生成自动生成的简历。我需要将它们转换为PDF / HTML / DOC,但是有许多可用的gem。
你认为哪个gem最适合制作PDF,HTML和DOC格式的简历?
我发现Prawn适用于PDF,但是否适合制作类似简历的PDF?
提前致谢。
编辑:我找到了一个类似于Prawn但用于docx的gem,也许这会引起您的兴趣。 https://github.com/trade-informatics/caracal/

Rails默认提供了许多可用的MIME类型。请查看此链接:http://apidock.com/rails/Mime#13-Default-Mime-Types - Adnan Devops
生成PDF文件,我建议您使用wicked_pdf gem,至于HTML,您不需要任何gem。对于docx,我可以帮您编写代码。 - Adnan Devops
感谢您的建议!关于您的帮助:该应用程序目前并不需要,我只是在了解设计方面的信息。无论如何,还是非常感谢您的建议! - Théo Capdet
你好,欢迎来到Stack Overflow。以“什么是最好的方法”开头的问题意味着你在征求我们的意见。不幸的是,“主观性强”的问题在本站已不再允许,因为过去这类问题曾导致激烈争论,分裂了我们的社区。相反,我们更喜欢那些有明确“正确”答案的问题。 - Taryn East
即使你不考虑最佳工具的意见,你的问题也是在问我们关于PDF的库或工具。我们也不允许这样的问题,因为你可以通过谷歌找到它们,而答案会随着时间的推移而变得过时...我们希望这里的问题永远存在。所以我们更喜欢你自己做研究,尝试几个工具,看看哪一个适合你。如果你在使用其中一个时遇到困难...那么回到我们这里,我们将帮助你修复错误。 - Taryn East
好的,我不知道。将来我不会这样做。 - Théo Capdet
4个回答

8

用于制作PDF文件

我会选择使用Prawn而不是Wicked-PDF

我知道wicked更方便,但Prawn既本地化又更灵活。

Wicked依赖于wkhtmltopdf并使用系统调用-系统调用可能会导致并发问题,并且在性能方面是昂贵的。

无论您使用哪种方式,我都可能会将CombinePDF加入到混合中。(我有偏见-我是该宝石的作者)

这将允许您使用模板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中复制和粘贴内容。

谢谢您提供的信息,PDF合并我之前不知道这个宝石。 - Théo Capdet

3

我经常使用Prawn来处理 PDF 文件,而用Caracal来处理 DOCX 文件。

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


2

0

你可以查看Ruby toolbox以获取可用于PDF生成的宝石。我会推荐Prawn,因为我自己使用过它,并且只需要非常简单的代码即可生成PDF。

例如:

require "prawn"

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

使用 Ruby Toolbox 查找其他 docx/html 相关的 gem :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接