0

我以前看起来很棒的所有布局现在都搞砸了,升级后似乎使用不同且更小的字体呈现WKHTMLTOPDF。全角 div 的渲染也比以前更小。

我尝试在 wicked 中修改 dpi 标志,当设置为 时,我看到了一个小dpi: 300的差异,但无论更改为dpi. 有人有任何提示吗?很确定问题出在对WKHTMLTOPDF.

我们将这些版本锁定了一段时间,因为渲染的 PDF 看起来很棒:

  • wicked_pdf (1.1.0)
  • wkhtmltopdf-binary (0.9.9.3)(使用 NimbusSansL Bold & Regular 字体渲染)

我们有一个新功能需要更好地处理长表中的分页符。由于我们已经升级,分页符工作得很好,但现在我们遇到了更多问题,以下是新版本:

  • wicked_pdf (1.2.2)
  • wkhtmltopdf-binary (0.12.4)(现在使用字体 DejaVuSans、Bold 和 Regular 进行渲染)

渲染代码:

  respond_to do |format|
    format.html
    format.pdf do
      render pdf: 'report',
             template: 'download_report.pdf.erb',
             show_as_html: params[:debug].present?,
             layout: 'report_application.pdf',
             margin: {
                 top: 5,
                 bottom: 5,
                 left: 5,
                 right: 5
             }
    end
  end
4

1 回答 1

0

添加该zoom选项似乎解决了我的大部分布局问题。受影响的 div 已定义并需要定义像素宽度。我通过将其中一个 div 的大小调整回其先前渲染的大小来确定缩放量。将新宽度除以旧宽度以获得缩放:

  respond_to do |format|
    format.html
    format.pdf do
      render pdf: 'report',
             zoom: 1.27,
             template: 'download_report.pdf.erb',
             show_as_html: params[:debug].present?,
             layout: 'report_application.pdf',
             margin: {
                 top: 5,
                 bottom: 5,
                 left: 5,
                 right: 5
             }
    end
  end
于 2019-04-22T18:21:31.330 回答