2012-07-19 7 views
13

Ich frage mich, ob es in Rails eine Bibliothek oder ein Juwel zum Drucken der Inhalte einer Webseite gab, wie im wahrsten Sinne des Wortes auf Papier über einen Drucker. Ich habe mich auch gefragt, ob es irgendeine Möglichkeit gibt, dass Sie angeben können, dass nur ein bestimmter Teil der Seite (z. B. ein div oder etwas) gedruckt werden würde? Alle Hinweise, Ratschläge oder Links zu Tutorials sind willkommen!Drucken von Material in Schienen (wörtlich zu einem Drucker)

EDIT

so habe ich auf die Schaffung eines Stylesheet einen Stich gemacht, die eine Druckfreundliche Ansicht erstellen wird, nennen wir es „print.css“:

div.transpose-keys, div#editSong, div#navigation, div#debug{ 
    display: none; 
} 

Und ich habe mich gefragt, Wenn es einen Weg gäbe, könnte ich es nur anwenden, wenn meine Anwendung die Druckaktion auslöst? Wenn also der folgende Link geklickt wird: wendet die Anwendung das obige css an, bevor es druckt? Hier ist der Link in meinem eingebetteten Ruby-html:

<%= link_to "PRINT", '#', onclick: "printpage()" %> 

Und schließlich mein Javascript Aufruf die Druckfunktion:

function printpage() 
    { 
    window.print() 
    } 
+0

Client-Seite nehme ich an? – MSalters

+1

Vielleicht möchte ich Folgendes sehen: http: // stackoverflow.com/questions/6406425/how-do-i-verwenden-ein-anderes-Layout-für-eine-spezifische-Aktion – DVG

+0

Client-Seite ja – TangoKilo

Antwort

12

Wenn Sie Ihren print.css hinzufügen als

<link rel="stylesheet" type="text/css" media="print" href="print.css"> 

und bedienbare Browser-Druckdialog folgt, sollte es automatisch das Seitenformat entsprechend dem Stil in print.css

2

Ich glaube, die Art und Weise dies in der Regel getan wird, ist ein ‚Druck‘ Fenster zu öffnen mit nur den gewünschten Informationen darauf, und von dort druckt der Benutzer über ihren Webbrowser. Sie könnte es ein bisschen mehr benutzerfreundlich durch einige Javascript in diesem Fenster hinzufügen:

window.print(); 
5

ich um mein Problem bekam durch mit dieser einfachen Lösung:

print.css:

@media print { 
    div.info, div#editStuff, div#navigation, div#debug { 
    display: none; 
    } 
} 

die @media Tag stellt sicher, diese sind nicht in der gedruckten Version

angezeigt application.js:

function printpage() 
{ 
    window.print() 
} 

show.html.erb:

<%= link_to "PRINT", '#', onclick: "printpage()" %> 
+0

so der Unterschied zwischen dem, was Sie in Ihrem 'EDIT' versucht haben, und diese Lösung, fügt '@media.print {} 'um die print.css hinzu? Vielleicht möchten Sie diese Antwort besser formatieren (das @ media.print ist nicht richtig formatiert) – mmcrae

+0

soll es 'print.css' in der Druckvorschau oder nur im gedruckten Dokument anwenden? Es funktioniert nicht ganz für mich – mmcrae

3
<script type="text/javascript">  
     function PrintDiv() {  
      var divToPrint = document.getElementById('divToPrint'); 
      var popupWin = window.open('', '_blank', 'width=300,height=300'); 
      popupWin.document.open(); 
      popupWin.document.write('<html><body onload="window.print()">' + divToPrint.innerHTML + '</html>'); 
      popupWin.document.close(); 
       } 
    </script> 
<%= image_tag("print.jpg", :width=>50, :height=>30, :onclick=>"PrintDiv();", :class=>'btn') %> 
Verwandte Themen