Druck einer neuen dynamisch erstellten Seite klappt nicht
Norbert Rudolph
- javascript
Hallo Kollegen,
ich brauch mal bitte dringend Eure Hilfe.
Es soll gedruckt werden <g>. Und zwar Teile einer Seite.
Mein bisheriger Lösungsansatz:
Auf einer recht umfassenden Seite mit vielen KB Text öffnet eine JavaScript-Funktion DoPrint() ein neues Fenster mit window.open(). In dieses Fenster schreibe ich die relevanten Textpassagen. Dann wird noch ein Button angelegt mit onClick=JavaScript:window.print() damit ein Druck ausgegeben werden kann.
Und jetzt kommt's:
Das neue Fenster wird zwar korrekt angezeigt (mit Text und Button) aber gedruckt wird nicht etwa der im neuen Fenster angezeigte Textausschnitt, sondern der riesiege Text des Ursprungfensters! Was kann ich hier tun? Dazu kommt noch, daß nach dem Druckvorgang ein weiteres (!) Fenster vom Browser aufgemacht wird in dem mir angezeigt wird, daß eine Seite nicht gefunden werden konnte. Keine Ahnung, warum das passiert!
Wir würdet Ihr diese Aufgabe lösen?
Ratlos,
Norbert
Hallo Norbert,
Das neue Fenster wird zwar korrekt angezeigt (mit Text und Button) aber gedruckt wird nicht etwa der im neuen Fenster angezeigte Textausschnitt, sondern der riesiege Text des Ursprungfensters! Was kann ich hier tun? Dazu kommt noch, daß nach dem Druckvorgang ein weiteres (!) Fenster vom Browser aufgemacht wird in dem mir angezeigt wird, daß eine Seite nicht gefunden werden konnte. Keine Ahnung, warum das passiert!
Ich bastele schon ziemlich lange an diesem Druckproblem und habe heute -auch bedingt durch dein Posting- einen neuen Ansatz weiterverfolgt.
Mittlerweile stehen zwei verfahren zur Verfügung:
Variante 1 nachzulesen auf meiner Homepage, http://www.pc-anfaenger.de/pca/script/jsdruck.htm
Variante 2:
für den IE ab Version 5 (getestet)und dem NN ab der Version 4 (Version 4.5 getestet) geht folgendes:
Bereiche die nicht ausgedruckt werden sollen erhalten eine Klasse nodruck.
für den IE gilt dann folgendes:
<style type="text/css">
<!--
@media print
{
.nodruck {display:none;}
}
-->
</style>
und für den NN:
<script>
if (window.innerHeight<30)
document.writeln('<style type="text/css">\n<!--\n .nodruck {display:none;}\n-->\n</style>');
</script>
Im NN nutzt man die Eigenschaft aus, das der NN vor dem Druck die Seite in ein unsichtbares Fenster lädt.
Viele Grüße
Antje