Ширина страницы Wicked_pdf в многостраничном pdf

Ваше здоровье! Я использую wicked_pdf для создания PDF-документов из представлений:

pdf = WickedPdf.new.pdf_from_string(
  render_to_string(
    :layout => "pdf_report.haml",
    :handlers => [:haml],
    :formats => [:pdf, :haml],
    :orientation => 'Landscape',
    :encoding => "utf8",
    :page_width => '2000',
    :dpi => '300'
  )
)

Ничего страшного, если в pdf одна страница:

введите здесь описание изображения

Но если в pdf-документе больше одной страницы, то ширина страницы нарушается:

введите здесь описание изображения


person xamenrax    schedule 21.08.2014    source источник


Ответы (1)


Я не смог воспроизвести ваш сценарий «имеет только одну страницу» с опубликованным вами кодом, однако есть проблема с параметрами, которые вы передаете. Они даже не доходят до wkhtmltopdf, так что, вероятно, они за вас решают, какие варианты использовать.

render_to_string будет молча отбрасывать любые параметры, которые он не понимает, но не является частью wicked_pdf.

pdf_from_string принимает два параметра, первый из которых представляет собой строку для pdf-ify, а второй — хэш параметров pdf из README.

Я добавил вашу проблему в проект wicked_pdf_issues здесь, чтобы воспроизвести и отладить ее:

https://github.com/unixmonkey/wicked_pdf_issues/commit/b722e8a06c42e1f29cbb15828e

Вы должны получить желаемые результаты, изменив свой код на что-то вроде этого:

string = render_to_string(
  template: 'pages/issue_330',
  formats: [:pdf],
  handlers: [:erb]
)
options = {
  orientation: 'Landscape',
  page_width: '2000',
  dpi: '300'
}
pdf = WickedPdf.new.pdf_from_string(string, options)
person Unixmonkey    schedule 02.09.2014