seite drucken

dawndevil

Grünschnabel
hi,
ich möchte eine funktion einbauen, die es ermöglicht die anfahrtbeschreibung drucken zu lassen.
also genauer gesagt, beim anklicken des druckbuttons soll sich das fenster öffnen, wo man die druckeinstellungen machen kann.
ich weiß das das mit window.print geht, aber ich möchte nicht das man den blöde button auf dem ausdruck sehen kann.
ausserdem wollte ich wissen, wie browsersicher das ist, also ob das mit dem window.print alle können...

vielen dank schon mal für die hilfe...
 
Hmn,ich glaub das ist nicht wirklich Standard,halt ich aber auch für überflüssig,wenn der Benutzer die Seite wirklich drucken will ist er nach zwei Klicks im richtigen Menü. :)
 
Hallo,

sowas ähnliches hatte wir mal :) Hat ganz gut funktioniert -> http://www.tutorials.de/forum/showthread.php?threadid=25558&highlight=drucken

desweiteren kannst du es auch mit css lösen - ist eigentlich noch "eleganter" :)

PHP:
<style type="text/css">
@media print
  .noprint { display: none; }
...
...
...
</style>

<div class="noprint">Dein Button hier rein</div>

bye


//edit: hab mir meinen alten Code nochmal angesehen - funktioniert, ist aber nicht besonders schön :( - mach ich bei Gelegenheit mal neu...
 
Zuletzt bearbeitet:
erstmal danke für die hilfe.
@toolkit: klar ist es nicht zwingen nötig, aber kunde ist ja bekanntlich könig und wen er das will, dann muss ich versuchen mir halt eine lösung zu beschaffen..deswegen ist es mir auch so wichtig, ob es browserunabhängig ist, darauf legt er nämlich auch großen wert...

@crono:
sind deine vorschläge den browserunabhängig..?

ausserdem hab ichs wohl irgendwie verpatzt..

der stylesheet code funktíoniert bei mir gar nicht, hab ihn so:
Code:
<html>
<head>
	<title>Untitled</title>
<style type="text/css">
@media print
  .noprint { display: none; }
...
...
...
</style>
</head>
<body>
<table cellspacing="2" cellpadding="2" border="0">
<tr>
    <td>mmm</td>
    <td>pppp</td>
</tr>
</table>
<div class="noprint"><a href="javascript:window.print()">print</a></div>
</body>
</html>

eingesetzt.. war das falsch?

der andere hat wunderbar geklappt, bis ich ihn auf meine bedürfnisse zugeschnitten habe...=> HMPF!

sieht jetzt so aus:

Code:
<html>
<head>
<title>Druckertest</title>
<script type="text/javascript">
function printPage() {
var np = 1; 
for(i=1;i<np;i++) {
  if(document.all['divNoPrint'+i]){
    document.all['divNoPrint'+i].style.display = 'none'; }
 }

window.print();
for(i=1;i<np;i++) {
  if(document.all['divNoPrint'+i]){
    document.all['divNoPrint'+i].style.display = ''; }
 } 
}
</script>
</head>
<body>
<div id="a"><p>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</p></div>
<div id="divNoPrint1"><a href="#" onClick="printPage();">print</a></div>
</body>
</html>

und der button wird gedruckt.. wo hab ich denn den fehler eingebaut?

gruß cathy
 
Code:
<script type="text/javascript">
var np = 1;

function printPage() {
for(i=1;i<=np;i++) {
  if(document.all['divNoPrint'+i]){
    document.all['divNoPrint'+i].style.display = 'none'; }
 }

window.print();
for(i=1;i<=np;i++) {
  if(document.all['divNoPrint'+i]){
    document.all['divNoPrint'+i].style.display = ''; }
 } 
}
</script>
 
Hallo,

erstmal zum CSS - sollte eigentlich Browserübergreifend sein, in wie weit diese Methoden schon unterstütz werden, steht auf einem anderen Blatt :( - ich hab mir das vorher auch nur aus Selfhtml zusammengereimt -> http://selfhtml.teamone.de/css/formate/einbinden.htm#link_media

Ich habe es aber selbst noch nie gebraucht - daher ists leider ungestetet. Die "..." gehören aber auf jeden Fall raus - sollten blos andeuten, daß noch weitere Formatierungen möglich sind...

Hab grad noch zwei evtl nützliche Links rausgekramt:
1) http://www.drweb.de/trickkiste/tricks212.shtml - Druckvorschau
2) http://www.drweb.de/trickkiste/tricks17.shtml - CSS Methode (vielleicht hatte ich es daher irgendwie noch im Hinterkopf?)


das mit dem JS werde ich mir später noch ansehen, aber glaube Nuinmundo hats bereits repariert :)

ciao
 
So, da bin ich wieder :)

habs jetzt so umgeschrieben, dass es in jedem halbwegs aktuellen Browser läuft...
PHP:
<html>
<head>
<title>Druckertest</title>

<script type="text/javascript">
function printPage() {
  var NP = document.getElementsByName('NoPrint');
  var NPL = NP.length;

  for(var i=0; i<NPL;i++){
    NP[i].style.display = 'none';
  }
  
  window.print();
  
  for(var j=0; j<NPL;j++){
    NP[j].style.display = 'block';
  }
}
</script>

</head>
<body>

<div id="NoPrint" name="NoPrint"><a href="#" onClick="printPage();">print id</a></div>

<div id="NoPrint" name="NoPrint">
  BlindText BlindText BlindText BlindText <br> 
  BlindText BlindText BlindText BlindText <p>
</div>

<div>
  BlindText2 BlindText2 BlindText2 BlindText2 <br> 
  BlindText2 BlindText2 BlindText2 BlindText2 <p>
</div>

<div id="NoPrint" name="NoPrint">
  BlindText3 BlindText3 BlindText3 BlindText3 <br> 
  BlindText3 BlindText3 BlindText3 BlindText3 <p>
</div>

</body>
</html>

Man braucht jetzt nix mehr anpassen - Ebenen die nicht gedruckt werden sollen, müssen id="NoPrint" und name="NoPrint" haben. Eigentlich würde name="NoPrint" reichen, allerdings kapiert es der IE dann nicht. Keine Ahnung wieso :( - wenns jemand weis, möchte er mir bitte bescheid sagen :)

ciao
 
wow, vielen vielen dank für die umfangreiche hilfe!!!!


inzwischen klappts wunderbar!

ein problem hab ich noch, dass es auf dem mac nicht funktionert, aber das ist ja bekannt das da die funktion window.print nicht geht...

gibts da doch noch irgendwo ne lösung oder ist es schlicht und einfach nicht möglich auf dem mac so eine funktion einzubauen??
 
Original geschrieben von dawndevil
gibts da doch noch irgendwo ne lösung oder ist es schlicht und einfach nicht möglich auf dem mac so eine funktion einzubauen??

Sorry, keine Ahnung - hab leider keinen Mac zur Verfügung :( noch nicht - G5 ich komme ;)


ciao
 
Zurück