【问题标题】:Rails 3 and PDFKit. How to specify page size?Rails 3 和 PDFKit。如何指定页面大小?
【发布时间】:2012-04-24 22:42:02
【问题描述】:

我一直在查看文档,但找不到答案。如何指定我的 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

【问题讨论】:

  • 你能做到吗?
  • 这对你有用吗?如果属实,接受吗?

标签: ruby-on-rails ruby pdf pdfkit


【解决方案1】:

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

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

PDFKit 使用 WKHTMLTOPDF,后者又使用 QPrinter。您可以在QPrinter documentation 中找到可用的尺寸(有一堆),但可以肯定地说,您想要的任何尺寸的纸张都可用。此外,如果找不到所需的尺寸,您可以设置自定义尺寸。

注意:如果您没有在某处的配置中为 page_size 设置默认选项,并且在您的方法调用中没有提供一个,PDFKit 将使用其内部默认值(字母)。见lib/pdfkit/configuration.rb的第10行

【讨论】:

    【解决方案2】:

    Pdkit 接受自定义尺寸:

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

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

    【讨论】:

    • 以毫米为单位指定 page_widthpage_height 对我有用。
    【解决方案3】:

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

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

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

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

    【讨论】:

    • 嗨,这条线 PDFKit.new(html, :page_size => 'Letter') 是在控制器中还是在视图中?还是在 pdfkit.rb 中?
    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 2015-02-28
    相关资源
    最近更新 更多