1

Я использую wicked_pdf для создания pdf-файла для моего приложения rails. Я пытаюсь сделать динамическое содержимое html в нижнем колонтитуле моего сгенерированного pdf.footers Содержимое html не печатается в wicked_pdf + rails

Я осуществил следующий код в контроллере:

#app/controllers/receipts_controller.rb 
    def generate_receipt 
    html = render_to_string(:action => 'print_receipt', 
      :layout => false)  

    pdf = WickedPdf.new.pdf_from_string(html, 
     :encoding => 'UTF-8', 
     :page_size => 'A4', 
     :orientation => 'Portrait', 
     #:footer => { :content => "This is my footer content."}, 
     :footer => { :html => { :template => 'footer.html.erb' } }) 
     send_data(pdf, :filename => get_file_name, :disposition => 'attachment') 
    end 

Если я использую только статический контент (проверьте выше комментировал раздел), то он работает как задумано. Но он не может загрузить содержимое нижнего колонтитула из предоставленного шаблона.

моя сноска находится по адресу:

#app/views/receipts/footer.html.erb 
<div class='rec-foot'> This is my footer content (this is dynamic) </div> 

Вот как у меня есть шаблон печати:

#app/views/receipts/print_receipt.html.erb 
    <htmL> 
    <head> 
     <%= wicked_pdf_stylesheet_link_tag "wicked_pdf" %> 
    </head> 
    <body> 
     <!--- my pdf page content goes here --> 
    </body> 
    </html> 



# app/assets/stylesheets/wicked_pdf.css 
    .rec-foot{ 
     font-weight: bold; 
     text-align: center; 
    } 

Издание: сноска раздел не получает визуализации для динамического контента HTML.

+0

Возможно, попробуйте полный путь? например receipts/footer.html.erb или даже app/views/receipts/footer.html.erb –

+0

Не нужно на самом деле. потому что, когда я предоставляю какой-либо недопустимый путь, он показывает распознанный путь до представлений, например «приложение/виды». Итак, я интерпретирую, поскольку мне нужно добавить дополнительные счета/имя_файла. – Ajay

ответ

0

Я считаю, что :template не будет работать для вас, потому что вы используете pdf_from_string (источник:. Закомментированные-из линий вблизи footer notes)

Мы пошли с :content делать что-то подобное в нашем приложение/модели/pdf_builder .rb:

:footer: { 
    content: { footer_html } 
} 

Затем определяется:

def footer_html 
    ERB.new(pdf_template).result(binding) 
end 

def pdf_template 
    File.read("full/path/of/your/file.html.erb") 
end 

Мы инициализируем в приложение/модели/pdf_buil der.rb с любым из информации нам нужно динамически заселения /app/views/pdf_footer.en.html.erb

+0

Я не возражаю принять ваш ответ! Благодаря! – Ajay

0

вы можете напрямую добавить свой файл в методу render_to_string предоставленной rails. для ex. :footer: { content: render_to_string('pdf_footer.html.erb', layout: 'pdf_layout.html.erb') }

wicked_pdf переопределяет метод render_to_string, поэтому он поддерживает все его параметры по умолчанию.