2014-12-08 9 views
6

Für meine Schienen 4 app möchte ich HTML und Css in eine pdf-Datei konvertieren. i verwenden, um die wkhtmltopdf und wicked_pdf gem wenn ich die bösen Helfer verwenden Sie es nicht die CSS nicht zeigen, aber es macht nur den Textwie man Css in pdf lädt mit wicked_pdf

in meinem Controller ich habe:

respond_to do |format| 
     format.html 
     format.pdf do 
     render :pdf => "#{@card.name}", 
      :template => 'cards/show.html.slim', 
      :page_size => "A4", 
      :disposition => 'attachment' 

Und in der Show.

html.slim
= link_to "Download PDF", :action => "show", :format => :pdf 

aplication.html.erb

<%= wicked_pdf_stylesheet_link_tag "pdf" -%> 
<%= wicked_pdf_stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> 
<%= wicked_pdf_javascript_include_tag "application", "data-turbolinks-track" => true %> 
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css"> 
<script src="//code.jquery.com/jquery-1.10.2.js"></script> 
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script> 
+0

Ich habe noch nie '-%>' vorher gesehen. Soll es so sein oder ist es falsch geschrieben? –

+0

Ich weiß, ich habe versucht, aber -%> ist, was die Dokumentation sagt .. https://github.com/mileszs/wicked_pdf – JHJ

+0

Es ist am offensichtlichsten vertippt ... Für den Rest schreiben Sie nicht "pdf" "', Ich denke: Sie sollten sie verwenden, um die Helfer zu ersetzen 'javascript_include_tag' oder' stylesheet_link_tag' (ich denke, wieder) –

Antwort

8
<%= wicked_pdf_stylesheet_link_tag "css_file_name" -%> 

dies ist die CSS-Datei Namen, die Sie in Ihrem app/assets/stylesheets/ Verzeichnis

<%= wicked_pdf_stylesheet_link_tag "css_file_name" -%> 
<%= wicked_pdf_stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> 
<%= wicked_pdf_javascript_include_tag "application", "data-turbolinks-track" => true %> 
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css"> 
<script src="//code.jquery.com/jquery-1.10.2.js"></script> 
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script> 

Hoffnung könnte dies helfen, haben muss.

+0

Meine application.SomeNum.css wird im Öffentlichen Ordner erstellt. Wie gehe ich in diesem Szenario vor? Auch der Dateiname ist eine zufällige Zahl. –

+0

In meinem Beispiel _css_file_name_ ist ein _scss_ und ich benutze '@ import" bootstrap.min "' für den Import meiner Bootstrap-Datei im Ordner _vendor_ – Mauro