Rails 3和PDFKit。如何指定页面大小?

时间:2012-04-24 22:42:03

标签: ruby-on-rails ruby pdf pdfkit

我一直在查看文档,但找不到答案。如何指定pdf文档的页面大小以及可用的页面大小?我一直在寻找,但我找不到好的文档。请指出一个URL或让我知道如何将一些页面大小编码到我的PDF文档中。

哦,我不想在任何配置文件上这样做,因为我需要生成不同大小的PDf文档。

不在配置文件中......

PDFKit.configure do |config|
config.wkhtmltopdf = `which wkhtmltopdf`.to_s.strip
config.default_options = {
  :encoding=>"UTF-8",
  :page_size=>"A4", #or "Letter" or whatever needed
  :margin_top=>"0.25in",
  :margin_right=>"1in",
  :margin_bottom=>"0.25in",
  :margin_left=>"1in",
  :disable_smart_shrinking=>false
  }
end

3 个答案:

答案 0 :(得分:4)

您可以在创建新PDF时设置页面大小:

kit = PDFKit.new(source, :page_size => "Legal")

PDFKit使用WKHTMLTOPDF,而WKHTMLTOPDF又使用QPrinter。你可以在QPrinter documentation中找到可用的尺寸(这里有一堆),但可以肯定地说你想要的任何尺寸的纸都可以。此外,如果您无法找到所需内容,则可以设置自定义尺寸。

注意:如果您未在某个配置中为page_size设置默认选项,并且未在方法调用中提供一个默认选项,则PDFKit将使用其内部默认值(Letter)。见lib/pdfkit/configuration.rb

的第10行

答案 1 :(得分:2)

由于它使用wkhtmltopdf生成PDF我假设您可以使用它支持的相同选项。在我发现的wkhtmltopdf手册中,它提到了以下网站的大小列表:

http://doc.trolltech.com/4.6/qprinter.html#PaperSize-enum

要设置页面大小,您可以使用:page_size选项,如下所示:

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

答案 2 :(得分:2)

Pdfkit接受自定义尺寸:

  PDFKit.configure do |config|
    config.wkhtmltopdf = `which wkhtmltopdf`.strip
    config.default_options = {
          :page_width => '1682',
          :page_height => '2378'
      }
  end

尺寸必须以毫米为单位(wkhtmltopdf文档)。