Abfrage Drucken

Worka

Mitglied
Hallo Leute,

ich habe ein Problem zwischen PHP und CSS.

Ich habe über CSS beim Drucken sämtliche Bereiche ausgeschlossen ( DISPLAY: none)
Dieses funktioniert auch einwandfrei.

Nur das Problem liegt darin, das ich eine Tabelle außen um die Website habe um einen Rahmen zu schaffen (auch über Stylessheet gemacht (class=xxx)). Dieser Rahmen soll aber nicht mit gedruckt werden. Aber würde ich es mit CSS ausschließen, dann würde er nix zum drucken anzeigen.

Kann ich irgendwie per PHP abfragen, ob jemand Drucken gedrückt hat oder nicht, weil dann könnte ich es so machen ( Über media=print funktioniert es leider nicht :-( ):

PHP:
<table <?php if ( media=="print" ) echo"class=tablegest";  ?> cellspacing=0 cellpadding=0 width=1 border=0>

Über CSS fragt man es ja mit "media" ab, nur wie bei PHP ?

Wäre sehr dankbar, Gruß Stefan
 
Soviel ich weiß, sender der Browser keine neue Anfrage, sobald man etwas drucken möchte. Und da PHP kein CSS versteht – außer du bringst es ihm bei –, kannst du auch nicht mit den Media-Typen arbeiten.
 
Wenn Du Stylesheets strikt trennst (also media screen und media print für den Tabellenrahmen verwendest) und den Rahmen mit CSS machst soltle das funktionieren.
Ein Beispiel zur veranschaulichung:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>
<meta http-equiv="Content-Type"
    content="application/xhtml+xml; charset=UTF-8" />
<title>Test</title>

<style type="text/css" media="all">
    #rahmen {background:#f00;}
</style>

<style type="text/css" media="print">
    #rahmen {border:0 #000 solid;}
</style>

<style type="text/css" media="screen">
    #rahmen {border:10px #000 solid;}
</style>
</head>
<body>
    <table id="rahmen">
        <tr><td>bla</td></tr>
    </table>
</body>
</html>
Die Tabelle hat überall einen roten Hintergrund, einen Rahmen im Browser und keinen Rahmen in der Druckvorschau (Firefox und IE, Drucken von Hintergrundfarben und Bildern aktiviert).

EDIT:
Folgender Code funktioniert auch, wie erwartet und nimmt der Tabelle im Druck die Hintergrundfarbe (Testumgebung wie oben):
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head>
<meta http-equiv="Content-Type"
    content="application/xhtml+xml; charset=UTF-8" />
<title>Test</title>

<style type="text/css" media="all">
    #rahmen {background:#f00;}
</style>

<style type="text/css" media="print">
    #rahmen {border:0 #000 solid;}
    #rahmen {background:#fff;}
</style>

<style type="text/css" media="screen">
    #rahmen {border:10px #000 solid;}
</style>
</head>
<body>
    <table id="rahmen">
        <tr><td>bla</td></tr>
    </table>
</body>
</html>
Und Gumbo muss ich da noch recht geben. Ohne einen speziellen Druckversion-Link, der auf eine neue Seite zeigt, wird Dir PHP nicht helfen. Ob das aber der Königsweg ist, wage ich zu bezweifeln.

Gruß hpvw
 
Zuletzt bearbeitet:
Super vielen Dank, das mit den CSS habe ich nun verstanden, da hatte ich noch eine kleine Lücke...
Werde es gleich mal ausprobieren..
Super Vielen Dank

Gruß Stefan
 
Zurück