升级 WKHTMLTOPDF 后的布局问题

Layout issues after upgrading WKHTMLTOPDF

我以前看起来不错的所有布局现在都乱七八糟,升级后似乎用不同的小字体渲染 WKHTMLTOPDF。全角 div 也比以前更小。

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

所做的更改

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

我们有一项新功能需要更好地处理长表格中的分页符。升级后分页效果很好,但现在我们有更多问题,这里是新版本:

渲染代码:

  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

添加 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