如何从HTML创建多页PDF

5

我们需要打印数千份符合以下格式的发票 -

http://example.com/orders/n

其中n = 成千上万个订单

逐个查看每个订单,然后点击“打印”需要花费我们很长时间。是否有一种方法可以从每个URL创建一个多页PDF,以便我们可以将其作为一个PDF下载,这样我们只需点击一次“打印”即可?


PrinceXML 是一款出色的 HTML 到 PDF 渲染器。 - jches
3个回答

6
你可以尝试使用PDFkit宝石(包装wkhtmltopdf)编写Ruby脚本。
我建议将你的pdf文件分成每50到100页,不喜欢在内存中处理1000页pdf的想法...可能会崩溃。
示例脚本,将页面合并为一个大的html字符串,并保存到文件:
require 'rubygems'
require 'open-uri'
require 'pdfkit'


PDFKit.configure do |config|
  config.wkhtmltopdf = '/path/to/wkhtmltopdf'
end

invoice_numbers = (1..1000) #replace with actual numbers

html = ""

invoice_numbers.each do |n|
  html << open("http://example.com/orders/#{n}").read + "<div style='page-break-before:always'></div>"
end  


pdf = PDFKit.new(html, :page_size => 'Letter')

pdf.to_file('/path/to/invoices.pdf')

0

考虑使用wkhtmltopdf

它是一个非常好的命令行工具,使用Webkit渲染引擎生成pdf页面。


0

对于发票,我喜欢使用htmldoc - 它的呈现效果比wkhtmltopdf更好,但缺点是你不能使用样式表。

因此,对于htmldoc,您可能需要重新编码发票视图,以使用更多的表格布局和内联样式。


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