2014-09-02 2 views
-1

Я пытаюсь преобразовать dyanmic HTMl в PDF с помощью wicked_pdf gem.Как визуализировать ERB как строку?

все это у меня есть

class HomeController < ApplicationController 
    def index 
    @var = Hash.new 
    @var = { first_name: "John", last_name: "Doe", address: "A & N", country: "India" } 
    html = render "home/to_pdf.html.erb", locals: { var:@var }, layout: false 
    pdf = WickedPdf.new.pdf_from_string(html[0].to_s) 

    save_path = Rails.root.join('pdfs','filename.pdf') 
    File.open(save_path, 'wb') do |file| 
     file << pdf 
    end 

    render :home # or redirect_to is also acceptable 
    end 
end 

to_pdf.html.erb

<style type="text/css"> 
    .row { 
     color: red; 
    } 
    .p { 
     font-size: 20px; 
     font-weight: bold; 
    } 
</style> 
<h1>Hello World</h1> 
<div class="row"> 
    <em><%= @var[:first_name] %></em> 
    <em><%= @var[:last_name] %></em> 
</div> 
<div class="row"> 
    <em><%= @var[:address] %></em> 
    <em><%= @var[:country] %></em> 
</div> 
<div class="sign"> 
    <br><br> 
    SIgn Here 
</div> 

home.html.erb

<h1>Pdf created successfully</h1> 

успешно оказывать to_pdf.html .erb и успешно создавать и сохраняет файл pdf, но я получил DoubleRenderError, что очевидно.

я хочу, чтобы redirect_to или оказывать «домашний»

Примечание: если я удалить штукатурку «дома», то я не получил ошибки, но тогда это делает to_pdf.html.erb не индекс .html.erb.

Я просто хочу скомпилированный вид erb (который является динамическим, как вы можете видеть выше m, используя @var) как html, чтобы я мог преобразовать его в pdf.

ответ

3

делают erb для pdf вы можете попробовать render_to_string

+1

Боже мой, только одна линия изменила весь мир, где ты был раньше, спасибо много человек :) –

+0

вы радушны;). – IS04

Смежные вопросы