Druckversion seperat anzeigen lassen
Erri
- css
Hallo,
ich bin gerade dabei meine Website mit einer Druckversion mittels CSS auszustatten.
Ich habe in meiner print.css folgenden Eintrag...
td.noprint
{
display: none;
}
...vorgenommen und jede Spalte, die NICHT GEDRUCKT WERDEN SOLL mit...
class="noprint"
...ausgestattet und natürlich meine beiden CSS-Dateien (screen & print) eingebunden. Nun möchte ich über einen Link <a href="http://www.homepage.de/index.html>Druckversion</a>
die Druckversion in einer neuen Seite öffnen.
Kann mir jemand helfen, wie ich hier vorgehen muss?
Gruß und Danke
Erri
Nun möchte ich über einen Link <a href="http://www.homepage.de/index.html>Druckversion</a>
die Druckversion in einer neuen Seite öffnen.
Dies habe ich bereits probiert, leider funktioniert es nicht:
<a href="<?=$PHP_SELF?>?printversion=1" target="blank">Druckversion</a>
Gruß Erri
Hallo,
<a href="<?=$PHP_SELF?>?printversion=1" target="blank">Druckversion</a>
Erstens solltest Du mal sicher sein, dass PHP ueberhaupt
funktioniert in dieser Datei.
Zweitens kann es daran scheitern, dass die Kurzschreibweise
<? ?> nicht funktioniert.
Drittens gibt es $PHP_SELF nur bei register_globals="off".
Versuch's wenn schon mit:
<?php echo $_SERVER['PHP_SELF']; ?>
Viertens musst Du natuerlich eine entsprechende
Unterscheidung (IF/ELSE oder SWITCH/CASE) im
Skript haben, die je nach Parameter verschiedene
LINK-Elemente in den HTML-Quellcode schreibt.
Gruesse,
Thomas
Hi,
Erstens solltest Du mal sicher sein, dass PHP ueberhaupt
funktioniert in dieser Datei.
Da bin ich mir 100%ig sicher.
Zweitens kann es daran scheitern, dass die Kurzschreibweise
<? ?> nicht funktioniert.
Bei anderen PHP-Aufrufen in der selben Datei funktionierts auch.
Drittens gibt es $PHP_SELF nur bei register_globals="off".
$PHP_SELF funktioniert sicher... sehe ich im Browser, ob als Link die aktuelle Datei oder eben "$PHP_SELF" angezeigt wird. (register_globals hatte ich auch gesetzt)
Viertens musst Du natuerlich eine entsprechende
Unterscheidung (IF/ELSE oder SWITCH/CASE) im
Skript haben, die je nach Parameter verschiedene
LINK-Elemente in den HTML-Quellcode schreibt.
Mmh, hier wird wohl mein Fehler liegen. Mal sehen, ob ichs noch hinbekomme.
So, wie ich gelesen habe (auf http://www.css-praxis.de/tipps.html), muss es doch so (mit "?printversion=1") funktionieren, oder?
Gruß Erri
Moin!
Mmh, hier wird wohl mein Fehler liegen. Mal sehen, ob ichs noch hinbekomme.
So, wie ich gelesen habe (auf http://www.css-praxis.de/tipps.html), muss es doch so (mit "?printversion=1") funktionieren, oder?
Ja, aber nur, wenn serverseitig ein Skript werkelt, den Parameter erkennt und dynamisch das Druckstylesheet als Screenstylesheet (und Druckstylesheet) einbindet.
Auf deutsch:
Du brauchst keine extra Druckansicht, wenn du folgendes tust:
"screen.css" (Dateiname ist natürlich frei) als media="screen" einbinden.
"print.css" (Dateiname ist natürlich auch frei) als media="print" einbinden.
In screen.css ist die Definition für die Bildschirmausgabe, in print.css die für die Druckausgabe. Je nach Browser siehst du von dieser Druckausgabe erst was beim Ausdrucken (irgendein IE 5.x hat keine Druckvorschau), oder schon bei der Druckvorschau (Opera ist da besonders hervorzuheben, die Druckansicht kann man direkt per Button umschalten).
Ein ordentlicher Browser (und ich kenne in diesem Zusammenhang keine unordentlichen Browser) wird niemals das print.css, welches mit media="print" (oder mit einem passenden @import) eingebunden ist, für die Bildschirmdarstellung verwenden.
Deshalb: Wenn du die Druckdarstellung im Browserfenster darstellen willst, ohne dass der Benutzer die Druchvorschau benutzt, dann mußt du (deswegen der URL-Parameter) dynamisch das print.css auch für media="screen" einbinden.
Oder du bindest einmal ohne media-Angabe das screen.css ein (gilt dann auch für die Benutzer, die diese Seite direkt ausdrucken - ist also reichlich sinnlos), und in der Druckausgabe dann das print.css.
Sowas ist aber tatsächlich unnötiger Doppelaufwand. Erstens muß man als Benutzer dann die fast gleiche HTML-Seite zweimal laden, einmal fürs angucken, einmal fürs Drucken, und zweitens muß dafür natürlich Serverlogik arbeiten, obwohl der Browser den Druck viel einfacher direkt gestalten könnte, indem einfach zwei Stylesheets eingebunden sind - eins für screen, eins für print.
- Sven Rautenberg
Hi Sven,
Auf deutsch:
Du brauchst keine extra Druckansicht, wenn du folgendes tust:
"screen.css" (Dateiname ist natürlich frei) als media="screen" einbinden.
"print.css" (Dateiname ist natürlich auch frei) als media="print" einbinden.
Genau so habe ich es auch. Ich wollte halt "mal" benutzerfreundlich sein und extra noch eine Druckansicht generieren lassen. *ggg*
Naja, so reicht`s letztendlich auch aus.
Das Problem ist nur, dass nicht jeder Browser eine Druckansicht besitzt (Bsp.: IE 5.5)...
Viele Grüße
Erri
Hallo,
Das Problem ist nur, dass nicht jeder Browser eine Druckansicht besitzt (Bsp.: IE 5.5)...
Der 5.0 hat keine, der 5.5 AFAIK schon.
Die fehlende Druck_vorschau_ ist aber sowieso nicht tragisch.
Hauptsache, die Browser beruecksichtigen beim richtigen
_Drucken_ auf Papier das entsprechende Stylesheet.
Das tut der MS IE 5.0 sicher, IIRC sogar schon der 4.0.
Serverseitig generierte "Druckversionen" sind somit
eigentlich nur noch fuer Netscape 4 notwendig.
Und der ist ja zum Glueck am Aussterben... ;-)
Gruesse,
Thomas
Hi,
Kann mir jemand helfen, wie ich hier vorgehen muss?
Einfach in der Druckseite die Print-CSS-Datei als Screen-CSS-Datei einbinden. :-)
Ein Beispiel, wo ich dies mit JavaScript (und ein- und derselben HTML-Datei) tue: s. URL-Link oben ...
Gruß, Cybaer
Hallo,
Eigentlich ist das ganze nicht unbedingt notwendig.
Normalerweise reicht es, die beiden Stylesheets
mit dem entsprechenden Media-Attribut im LINK-Element
einzubinden.
http://aktuell.de.selfhtml.org/tippstricks/css/drucklayout/index.htm
Nun möchte ich über einen Link <a href="http://www.homepage.de/index.html>Druckversion</a>
die Druckversion in einer neuen Seite öffnen.
Mit reinem HTML bzw. CSS geht das nicht.
Entweder bastelst Du serverseitig rum.
Das ist zuverlaessiger.
index.html => normale Version fuer beide Medien.
index.html?media=print => Print-Version
Einen Ansatz mit PHP findest Du hier:
http://www.tiptom.ch/tests/phpssi/2versionen.php
(Leicht veraltet - im Skript sollte man statt direkt
auf $media lieber auf $_GET['media'] zugreifen.)
Oder Du bastelst mit JavaScript rum.
Das ist weniger zuverlaessig.
Mit dem Suchbegriff "Style Switcher" findest
Du vielleicht was.
Gruesse,
Thomas