Shop-Hilfe.com
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 05.07.2005, 08:13   #1
TP-Moderator-Opa
 
Benutzerbild von Torsten
 
Registriert seit: Jan 2004
Ort: Marbach
Torsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine User
Question

Druckversion mittels PHP erzeugen


Moin TP-Dynamiker,

ist es möglich mittels PHP den Content einer Website in einer Druckfreundlichen Datei zu generieren?

Wenn ja wie funktioniert das?
In welcher Form müssen die Texte vorliegen?

Oft wird ja darauf verwiesen, das man eine Druckversion mit CSS lösen kann.
Mich interessiert aber wie das funktioniert, wenn größere Seiten zu jedem Content einen Link anbieten, Druckfreundliche Version, es geht eine neue Seite auf die meistens druck.php heisst und in der dann nur der betreffende Text steht mit angabe der Quelle und des Pfades.

Wird soetwas aus einer Datenbank generiert? Oder könnte man das auch einfacher lösen?
__________________
Gruß Torsten

.:Website: www.ViewPix.de _.:Photoblog: PhotoBlog.ViewPix.de _.:Photogalerie: PhotoGalerie.ViewPix.de
Torsten ist offline   Mit Zitat antworten


Alt 05.07.2005, 09:11   #2
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Sowas wird meist generiert, wenn die "Rohtexte" in der Datenbank oder einer Textdatei vorliegen.

Rein theoretisch kann man mit PHP auch eine .html Datei auslesen und massig unerwünschte HTML-Tags herausfiltern ... aber sinnvoll ist das nicht.

Am einfachsten ist es aber mit einem CSS für den Druck - dort kannst Du nicht nur eine korrekte Schrifteinheit angeben (=pt), sondern auch unerwünschte Elemente einfach wegblenden, sofern der HTML-Code entsprechend erstellt wurde.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 05.07.2005, 09:33   #3
TP-Moderator-Opa
 
Benutzerbild von Torsten
 
Registriert seit: Jan 2004
Ort: Marbach
Torsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine User
Post

Danke Dir Boris,

der Hintergrund meiner Frage ist folgender:

Ich finde es Userfreundlicher wenn auf einen Print-Link hin sich eine neue Seite öffnet in der nur das angezeigt wird, was tatsächlich gedruckt werden wird.

Bei der CSS-basierenden Lösung ist dies ja wohl nicht möglich, oder doch?
__________________
Gruß Torsten

.:Website: www.ViewPix.de _.:Photoblog: PhotoBlog.ViewPix.de _.:Photogalerie: PhotoGalerie.ViewPix.de
Torsten ist offline   Mit Zitat antworten
Alt 05.07.2005, 10:17   #4
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Doch, natürlich. Wie Boris schon sagte, Du kannst mit "display:none" alles ausblenden, was auf der Druckversion nicht erscheinen soll und auch darüber hinaus die Ausgabe optimal für den Ausdruck anpassen.

Bei modernen Browsern (sprich nicht dem IE, wer hätt's gedacht), hast Du mit CSS z.B. die Möglichkeit, hinter Links automatisch deren URL auszugeben, damit sie auch in der Papierversion nutzbar sind (anklicken geht nicht mehr, aber immerhin noch abtippen der Adresse). Das ist mit PHP natürlich auch möglich, aber deutlich komplizierter.

Ich würd CSS benutzen, für genau solche Sachen ist es gedacht.


Ein Beispiel von mir:

http://www.gy-mi.de/index/schulprofil/1/

Es gibt dort keinen "Druckversion"-Link, das Druck-Stylesheet wird zum Drucken automatisch verwendet.

Ein Link zu einer Druckversion, die man auch auf dem Bildschirm schon als solche präsentiert bekommt (in der normalen Ansicht, nicht erst in der Druckvorschau, d.h. ohne Angabe 'media="print"'), ist trotzdem sinnvoll, find ich. Zum einen weil die meisten User es so gewohnt, zum anderen weil die Sache dann auch funktioniert, wenn der Browser 'media="print"' evtl. nicht versteht.

Der Grund für das Fehlen eines solchen auf dieser Site ist nur Faulheit .

Geändert von seb (05.07.2005 um 10:28 Uhr).
seb ist offline   Mit Zitat antworten
Alt 05.07.2005, 10:46   #5
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
seb hat schon alles dazu gesagt

@seb:
Dein Beispiel hat keine Hintergrundfarbe definiert, dadurch ist die Website bei mir komplett grau
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 05.07.2005, 11:22   #6
TP-Moderator-Opa
 
Benutzerbild von Torsten
 
Registriert seit: Jan 2004
Ort: Marbach
Torsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine User
Post

Vielen Dank Seb,

ich denke auch das ich das dann am besten mit CSS löse

Habe mir soeben von Deiner Seite ein Dokument ausgedruckt, mit Firefox - nicht IE und das schaut alles sehr gut aus!

Eine Frage hätte ich aber noch:

Zitat:
Zitat von seb
Ein Link zu einer Druckversion, die man auch auf dem Bildschirm schon als solche präsentiert bekommt (in der normalen Ansicht, nicht erst in der Druckvorschau, d.h. ohne Angabe 'media="print"'), ist trotzdem sinnvoll, find ich. Zum einen weil die meisten User es so gewohnt, zum anderen weil die Sache dann auch funktioniert, wenn der Browser 'media="print"' evtl. nicht versteht.
Wie macht man das?
D.h. wie stellt man den zu druckenden Inhalt auf dem Bildschirm dar - vor dem Druckbefehl?
__________________
Gruß Torsten

.:Website: www.ViewPix.de _.:Photoblog: PhotoBlog.ViewPix.de _.:Photogalerie: PhotoGalerie.ViewPix.de
Torsten ist offline   Mit Zitat antworten
Alt 05.07.2005, 13:00   #7
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Zitat:
D.h. wie stellt man den zu druckenden Inhalt auf dem Bildschirm dar - vor dem Druckbefehl?
Indem Du das Druck-Stylesheet eben nicht (bzw. nicht nur) mit dem Attribut
HTML-Code:
media="print"
einbindest, sondern ohne "media"-Angabe (d.h. "ganz normal"). Dann wird das CSS für die normale Bildschirmdarstellung und den Druck verwendet. Dafür brauchst Du dann aber logischerweise eine eigene "Druckansicht"-Seite.

Da Du ja offensichtlich PHP zur Verfügung hast, empfehl ich dir folgende Lösung:

Nimm deine Seite bzw. dein Script und änder sie so, dass du per GET-Argument angeben kannst, welche CSS-Datei verwendet werden soll:

PHP-Code:
// falls $_GET['css'] übergeben wurde, diesen Wert für $css nehmen, ansonsten "default.css":

if (isset($_GET['css']))
{
$css $_GET['css'];
}
else
{
$css "default.css";
}

// Stylesheet-Datei $css einbinden:

echo '<link rel="stylesheet" type="text/css" href="'$css'" />'
Wenn das Script jetzt ohne "?css=dateiname.css" aufgerufen wird, wird die Datei default.css eingebunden, ansonsten das, was für "css" übergeben wurde.

Jetzt kannst Du dir ein print-Stylesheet "print.css" erstellen und deine Druckansicht so aufrufen:

PHP-Code:
script.php?css=print.css 
Zusätzlich kannst Du das print-Stylesheet immer per
PHP-Code:
<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 
statisch definieren. Dann wird es automatisch verwendet, wenn der Browser 'media="print"' versteht (tun die meisten halbwegs aktuellen, auch der IE).


EDIT

Zitat:
Dein Beispiel hat keine Hintergrundfarbe definiert, dadurch ist die Website bei mir komplett grau
Oh...danke für den Hinweis, änder ich sofort.

...aber wieso zum Teufel stellst Du auch grau als Standard-Hintergrundfarbe ein?

Geändert von seb (05.07.2005 um 13:04 Uhr).
seb ist offline   Mit Zitat antworten
Alt 05.07.2005, 13:33   #8
TP-Specialist
 
Benutzerbild von rewboss
 
Registriert seit: Mar 2005
Ort: Unterfranken
rewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKErewboss ist ein richtiges Arbeitstier - DANKE
Übrigens, ich halte einen Link auf eine "Druckversion" für überflüssig: Es ist einfach ein Klick mehr (oder zwei, wenn man zurück zur Bildschirmversion wechselt, bzw das Fenster mit der Druckversion schließt). CSS bietet eine viel einfachere Lösung an: Einfach "Drucken" klicken und es kommt eine für den Druck optimierte Seite aus dem Drucker.

Dafür ist es erforderlich, dass man möglichst sauberen Code verwendet, d.h. alle Formatierungen im Stylesheet, nicht im HTML-Code, der die Struktur des Dokuments wiedergeben soll. Der Pfad wird normalerweise sowieso mitgedruckt, aber es spricht nichts dagegen, eine Pfadangabe anzugeben und mit CSS für die Druckversion auszublenden.

So geschehen bei mir. Das Stylesheet für die Druckversion blendet die Menüs aus und ersetzt das rewboss-Logo mit Text.
rewboss ist offline   Mit Zitat antworten
Alt 05.07.2005, 16:38   #9
TP-Moderator-Opa
 
Benutzerbild von Torsten
 
Registriert seit: Jan 2004
Ort: Marbach
Torsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine User
Talking

Super und Dankeschön Euch @llen

Ein für und wider da muß ich mich wohl entscheiden, entweder - oder.
Die Steuerung durch eine print.css Datei wird jedenfalls kein Problem darstellen...
__________________
Gruß Torsten

.:Website: www.ViewPix.de _.:Photoblog: PhotoBlog.ViewPix.de _.:Photogalerie: PhotoGalerie.ViewPix.de
Torsten ist offline   Mit Zitat antworten
Alt 05.07.2005, 17:03   #10
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Ich würd beide Lösungen parallel anbieten, also "echtes" Druck-Stylesheet per media="print" UND ne gesonderte Druckversion-Seite. Wenn Du das CSS für die Druckansicht erstmal hast, ist ja beides mit ein paar Zeilen Code gemacht.
seb ist offline   Mit Zitat antworten
Alt 05.07.2005, 18:06   #11
TP-Moderator-Opa
 
Benutzerbild von Torsten
 
Registriert seit: Jan 2004
Ort: Marbach
Torsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine User
Post

Zitat:
Zitat von seb
Ich würd beide Lösungen parallel anbieten, also "echtes" Druck-Stylesheet per media="print" UND ne gesonderte Druckversion-Seite.
ist eine gute Idee Seb
Zitat:
Zitat von seb
Wenn Du das CSS für die Druckansicht erstmal hast, ist ja beides mit ein paar Zeilen Code gemacht.
Nur genau das ist mir noch nicht ganz klar

Ich bin eher ein PHP-Fertig-Code-Einsetzer und wüßte jetzt nicht wie ich das umsetze...

Okay - Du hast weiter oben ein Bsp. aufgeführt, aber ich weiß nicht so genau wo ich was in das Dokument einfügen muß
__________________
Gruß Torsten

.:Website: www.ViewPix.de _.:Photoblog: PhotoBlog.ViewPix.de _.:Photogalerie: PhotoGalerie.ViewPix.de
Torsten ist offline   Mit Zitat antworten
Alt 05.07.2005, 19:17   #12
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Na dort, wo das <link>-Element ausgegeben werden soll, das die CSS-Datei einbindet, d.h. Im <head> deines HTML-Dokuments.
seb ist offline   Mit Zitat antworten
Alt 05.07.2005, 19:23   #13
TP-Moderator-Opa
 
Benutzerbild von Torsten
 
Registriert seit: Jan 2004
Ort: Marbach
Torsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine User
Post

Zitat:
Zitat von seb
...also "echtes" Druck-Stylesheet per media="print" UND ne gesonderte Druckversion-Seite...
Öhm wo und wie man Stylesheets einbindet das weiß ich eigentlich.
Ich meinte wie man aus einer Datei heraus die gesonderte Druckversion-Seite generiert - bzw. wo man den dazu nötigen Code einbindet
__________________
Gruß Torsten

.:Website: www.ViewPix.de _.:Photoblog: PhotoBlog.ViewPix.de _.:Photogalerie: PhotoGalerie.ViewPix.de
Torsten ist offline   Mit Zitat antworten
Alt 05.07.2005, 19:25   #14
seb
TP-Veteran
 
Registriert seit: Jan 2002
seb bringt sich richtig einseb bringt sich richtig ein
Das hab ich schon verstanden, und meine Antwort passt auch .

Den ganze PHP-Code musst Du dort hin setzen, wo das <link> stehen soll. Das war's schon.
seb ist offline   Mit Zitat antworten
Alt 05.07.2005, 20:15   #15
TP-Moderator-Opa
 
Benutzerbild von Torsten
 
Registriert seit: Jan 2004
Ort: Marbach
Torsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine UserTorsten lebt für das TP und seine User
Post

Oooops - dann habe ich wohl alles falsch verstanden
__________________
Gruß Torsten

.:Website: www.ViewPix.de _.:Photoblog: PhotoBlog.ViewPix.de _.:Photogalerie: PhotoGalerie.ViewPix.de
Torsten ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Druckversion mittels PHP erzeugen Druckversion mittels PHP erzeugen
« MYSQL - DB sortieren auch mit GROUP | PHP und PDFs »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.