Wicked_PDF / wkhtmltopdf不同控制器中pdf的不同字体和页面宽度大小

时间:2015-01-15 19:48:12

标签: ruby-on-rails wkhtmltopdf wicked-pdf

设置:使用gem 'wicked_pdf', '~> 0.11.0'的Rails 4.1.1应用程序和手动安装的wkhtmltopdf二进制版本0.12.1(带有修补的qt)

我有两个控制器生成类似的pdf报告,这些报告共享多个页面。我对两种报告类型之间共享的页面有部分内容。

控制器代码:

# GET /assessments/1
def show
  respond_to do |format|
    format.html
    format.pdf do
      render pdf:          "Individual_Report-#{Date.today}",
             disposition:  "inline",
             layout:       "pdf",
             dpi:          "300",
             encoding:     "UTF-8",
             show_as_html: params[:debug].present?
    end
  end
end

# GET /reports/1
def show
  respond_to do |format|
    format.html
    format.pdf do
      render pdf:          "Team_Report-#{Date.today}",
             disposition:  "inline",
             layout:       "pdf",
             dpi:          "300",
             encoding:     "UTF-8",
             show_as_html: params[:debug].present?
    end
  end
end

查看代码:

# layouts/pdf.slim
doctype html
html
  head
    meta charset="utf-8"
    title
      = content_for?(:title) ? yield(:title) : 'Main Title'
    == wicked_pdf_stylesheet_link_tag "application", :media => 'all'
    == wicked_pdf_stylesheet_link_tag "print", :media => 'all'
    == wicked_pdf_javascript_include_tag 'vendor/modernizr'
    == csrf_meta_tags
  body data-action=action_name data-controller=controller_name data-format="pdf"
    main
      == yield
    == wicked_pdf_javascript_include_tag 'application'
    javascript:
      window.jQuery || alert("false");

# assessments/show.pdf.slim
= render "shared/cover", m: @assessment, t: "Individual"
= render "shared/about"
= render "shared/team", report: @report
# etc. etc. this is where the reports differ

# reports/show.pdf.slim
= render "shared/cover", m: @report, t: "Team"
= render "shared/about"
= render "shared/team", report: @report
# etc. etc. this is where the reports differ

然而,评估控制器的报告生成的pdf内容宽度稍窄,文本大小也相应较小。使用debug param渲染html会给出相同的页面,并且检查css显示没有差异。我使用Foundation作为css框架,但我认为这不重要。

我读了一些关于wkhtmltopdf --disable-smart-shrinking选项的内容,但我不确定wicked_pdf是否使用了它,如果是的话,如何在wicked_pdf.rb初始化程序中更改它? 。我还设置了dpi和不同的值无效。调整页边距有助于一些但不能解决潜在问题。如果需要,我可以添加截图,但我认为没有它们就应该清楚问题。

感谢您提供有关如何解决问题的任何帮助或使用wicked_pdf调整wkhtmltopdf选项。

1 个答案:

答案 0 :(得分:1)

我偶然想到了这个。似乎这个问题是由我在使用Chart.js和<帆布>尺寸大于它的容器的元素。

我不能准确理解造成这个问题的原因。它也可能已连接到我正在使用的Foundation框架中的一些CSS。不过,我会发布这个答案,以防其他人解决同样的问题。

我不接受这个作为答案,因为它没有具体回答这个问题并且没有解决如何

  

"使用wicked_pdf调整wkhtmltopdf选项。"

如果其他人可以回复,我会接受它。