window.print() druckt leere Seiten
Jones
- javascript
Hallo,
ich habe eine HP auf der ich eine SVG Grafik darstelle,
nun will ich per window.print() die Seite mit dem SVG drucken,
das klappt auch wunderbar (das svg geht über die gesamte seite).
den Printbutton blende ich vorher via style.display="none" aus.
Jedoch werden immer 2 seiten gedruck, eine mit der svg grafik, die ander mit den nicht dargestellten buttons - also komplett leer.
zum besseren verständnis
die js funktion im header (b1 und b2 sind buttons)
//print BPL without print button
function printPage() {
var elem = document.getElementById('b1');
elem.style.display = 'none';
var elem1 = document.getElementById('b2');
elem1.style.display = 'none';
window.print();
elem.style.display = 'block';
elem1.style.display = 'block';
}
und der rest im body
<input id="b1" type="button" value="print" onClick="javascript:printPage()" >
<form id="lay1" style="display:block">
<div style="float: left; border: 1px solid silver;">
<embed id="SVGEmbed" style="display:block;background-color:#FFFFFF;" type="image/svg+xml" src="svg.svg" heigth="2000" width="2000"/>
</div>
</form>
Ich sags auch lieber gleich. Ohne den <form> tag wird nur eine seite gedruckt, allerdings verschwinded das svg auch mit den buttons.
danke für jede hilfe
Jones
ein einfaches
@media print {
#b1, #b2 { display:none; }
}
im Stylesheet tuts auch, schon verschwinden die Button im Ausdruck (und zwar egal wie das Drucken aufgerufen wird)
Ich sags auch lieber gleich. Ohne den <form> tag wird nur eine seite gedruckt, allerdings verschwinded das svg auch mit den buttons.
Offenbar fehlt hier etwas Code. Das form-Element ist so komplett sinnlos.
ein einfaches
@media print {
#b1, #b2 { display:none; }
}
...tuts auch...
danke hierfür
Offenbar fehlt hier etwas Code. Das form-Element ist so komplett sinnlos.
Die Seite ist nicht von mir und ich kann Sie nicht ohne weiteres verändern.
Ich sollte nur die print Funktion hinzufügen.
Also was nun:
ich habe eine HP auf der ich eine SVG Grafik darstelle,
oder
Die Seite ist nicht von mir und ich kann Sie nicht ohne weiteres verändern.
und was heißt hier "nicht ohne weiteres"?
Meine Frage bezog sich übrigens auf den Teil, den du hier offenbar weggelassen hast!
um die verwirrung mal zu lösen:
Die seite sieht folgendermasen aus fotos.web.de/jo.pi_aus_la/a
Es ist ist kein reines html. auch kein jsp oder php, sondern eine firmeneigene technologie, die ich selber nicht kenne.
die einzigen html Schnipsel an denen ich rumbasteln kann sind
<input id="b1" type="button" value="print" onClick="javascript:printPage()" >
<form id="lay1" style="display:block">
<div style="float: left; border: 1px solid silver;">
<embed id="SVGEmbed" style="display:block;background-color:#FFFFFF;" type="image/svg+xml" src="svg.svg" heigth="2000" width="2000"/>
</div>
</form>
wie ich schon vorher gepostet habe.
Trotzdem danke.
um die verwirrung mal zu
vergrößern: Was hat die angegebene Seite mit dem Problem zu tun?
die einzigen html Schnipsel an denen ich rumbasteln kann sind
also stammt das Formular doch von dir?
<input id="b1" type="button" value="print" onClick="javascript:printPage()" >
hier sollte es einfach: onclick="window.print()" heißen, der restliche Inhalt deiner Funktion ist durch das CSS (s.o.) überflüssig.
<embed id="SVGEmbed" style="display:block;background-color:#FFFFFF;" type="image/svg+xml" src="svg.svg" heigth="2000" width="2000"/>
dass valide nur <object> und nicht <embed> ist weißt du?
wie ich schon vorher gepostet habe.
durch permanentes Wiederholen derselben Information wird das Problem möglicherweise nicht deutlicher!