Проблемы с макетом после обновления WKHTMLTOPDF - PullRequest
0 голосов
/ 20 апреля 2019

Все мои макеты, которые раньше выглядели великолепно, теперь испорчены, после обновления WKHTMLTOPDF кажется, что они рендеринга с другим шрифтом меньшего размера.Div ширины также рендеринга меньше, чем раньше.

Я пытался изменить флаг dpi в wicked, я увидел небольшую разницу, когда установлено значение 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

1 Ответ

0 голосов
/ 22 апреля 2019

Добавление опции 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
...