После добавления заголовка получаем пустую pdf страницу в wicked_pdf Rails - PullRequest
0 голосов
/ 10 декабря 2018

Мой код работает без заголовка, но после добавления заголовка я получаю пустую страницу PDF.Пожалуйста, решите мою проблему

def show
    @resume = current_user.resume
    respond_to do |format|
      format.html{ }
      format.pdf do 
         render template: 'student/resumes/show', 
                pdf: "#{current_user.first_name}.pdf",
                # :header => { :content => render_to_string({:template => 'student/resumes/header.pdf.erb'})}
                header:  {
                          html: {           
                          template: 'student/resumes/header'},
                          layout: 'pdf.erb',
                          handlers: [:erb],
                          formats: [:pdf] 
                          }
      end
    end
  end

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

С той же проблемой я также столкнулся с кодом, поэтому я попытался с большим количеством комбинаций, но в конце концов я нашел следующие решения, которые работали для меня

Следовал правильный формат HTML DOM, который отлично работает:

<!DOCTYPE html>
<html>
  <head>
   <title></title>
    <link href=“https://fonts.googleapis.com/css?family=Roboto:400,700” rel=“stylesheet”>
    <%= wicked_pdf_stylesheet_link_tag ‘pdf’ %>
  </head>
  <body>
   <h1>Hello World</h1>
  </body>
</html>

Выше приведен пример для заголовка

Также я добавил следующее свойство в контроллер для генерации PDF

          render template: 'backend/report_result/report',
             pdf: "test",
             header:  {   html: {            template: 'backend/report_result/header'}},
             margin: { top: 30, bottom: 20, left: 25, right: 25 }

Убедитесь, что все свойства указаны правильно вместе с представлением сpdf.erb формат

0 голосов
/ 10 декабря 2018

Ваши закрывающие скобки находятся не в том месте.заголовок - HTML должен содержать все эти другие ключи

def show
    @resume = current_user.resume
    respond_to do |format|
      format.html{ }
      format.pdf do 
         render template: 'student/resumes/show', 
                pdf: "#{current_user.first_name}.pdf",
                # :header => { :content => render_to_string({:template => 'student/resumes/header.pdf.erb'})}
                header:  {
                          html: {           
                          template: 'student/resumes/header',
                          layout: 'pdf.erb',
                          handlers: [:erb],
                          formats: [:pdf] 
                          }}
      end
    end
  end
...