在 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 的易用性的启发。
我需要创建一个应用程序,它可以根据字段自动生成简历。我需要在 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 的易用性的启发。