Wicked_PDF / wkhtmltopdf разные размеры шрифта и ширины страницы из pdf в разных контроллерах

Установка: приложение Rails 4.1.1, использующее gem 'wicked_pdf', '~> 0.11.0' и установленную вручную двоичную версию 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-файл, который имеет немного меньшую ширину содержимого и, соответственно, меньший размер текста. Визуализация html с параметром отладки дает идентичные страницы, а проверка css не показывает различий. Я использую Foundation в качестве CSS-фреймворка, но не думаю, что это важно.

Я читал кое-что о параметре --disable-smart-shrinking wkhtmltopdf, но я не уверен, используется ли он в wicked_pdf, и если да, то как / если его можно изменить в инициализаторе wicked_pdf.rb. Я также установил dpi и другие значения без эффекта. Регулировка полей страницы некоторым помогает, но не решает основную проблему. При необходимости я могу добавить скриншоты, но я думаю, что проблема должна быть достаточно ясной и без них.

Благодарим за любую помощь в том, как решить проблему или настроить параметры wkhtmltopdf с помощью wicked_pdf.


person John Kacz    schedule 15.01.2015    source источник


Ответы (1)


Я понял это случайно. Кажется, проблема была вызвана чем-то еще, что я делал с Chart.js и элементом ‹canvas>, размер которого превышал размер контейнера.

Я не совсем понимаю, в чем проблема. Возможно, он также был связан с некоторым CSS из фреймворка Foundation, который я также использую. Тем не менее, я отправлю этот ответ на случай, если он поможет другим решить ту же проблему.

Я не буду принимать это как ответ, поскольку он конкретно не отвечает на вопрос и не касается того, как

"настроить параметры wkhtmltopdf с помощью wicked_pdf."

Если кто-то еще может ответить на это, я приму это.

person John Kacz    schedule 14.02.2015