Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   printausgabe per php (https://boardunity.de/printausgabe-per-php-t2296.html)

Norbert 25.08.2004 17:53

printausgabe per php
 
Hallo Forum,

ich suche hier und überall nach einer guten Möglichkeit, wie ich mit PHP oder einem anderen Trick eine Printversion einer Webseite bauen kann. Hintergrund: es soll eine Seite mit Header und Navi erstellt werden, aber es wird nur ein Textbereich im Druck benötigt (ein Formular zum Ausfüllen und per Fax übertragen). Den ganzen Rest der Seite sollte dabei nicht mit ausgedruckt werden!

Wie kann ich das realisieren? bitte erklärt es mir so, das ich es als php Neuling verstehen kann...

Gruß

Norbert

exe 25.08.2004 18:19

Wenn die Seite in irgendeiner Weise auf Templates basiert könnte man eine Druckversion einfach damit erstellen das dabei der Textbereich in ein extra Template ohne Header und Navi gesetzt wird. So mach ich das beispielsweise in meinem Wiki - wird dort die Druckversion aufgerufen wird statt des normalen Templates ein anderes aufgerufen das nur einen sehr rudimentären Header und Footer und ein anderes Stylesheet enthält.
Vorteil: funktioniert in jedem Browser.

Eine andere Möglichkeit wäre ohne PHP sondern mit CSS ein Stylesheet fürs Drucken festlegen in dem Header und Navi (die dann in <div>-Bereich eingebaut werden müssen) per CSS-Angabe ausgeblendet werden. Das sollte dann auch in den gängigen Browsern funktionieren.
Nachteil: vielleicht funktionierts in irgendwelchen Browsern nicht (ich hab das noch nicht so ausgiebig getestet - Firefox kanns auf jedenfall)

Wie man die Druckversion bei dir am besten erledigt hängt natürlich ein bisschen davon ab wie die Website dann genau aussieht (mit oder ohne PHP-Backend beispielsweise).

Norbert 25.08.2004 18:49

also die Seite ist eine PHP Seite

und ich will nur den rechten Teil mit dem Text ausdrucken lassen. Der Kunde besteht aus rechtlich-formalen Gründen auf einem Fax.

Wie kann ich das am besten machen? ich habe im Template links schon einen "Seite audrucken" Button, den kann ich auch dafür verwenden. Am Sichersten noch die normale Windows Printfunktion benutzen.

Norbert

Edit: ich habe es mit diesem Script versucht, steige aber nicht ganz durch. Es gibt mir immer die Meldung aus das keine Datei ausgewählt sei. Komisch komisch..!

exe 25.08.2004 19:19

Wenn das eine PHP-Seite ist nehme ich doch mal an das Navigation und Kopf der Seite extra abgelegt sind und nicht in jeder der PHP-Dateien ist. Da müsste es dann doch relativ einfach sein für die Anmeldung eine PHP-Datei zu schreiben die Kopf und Navigation nicht ausgibt sondern nur die Anmeldung?

Wenn du möchtest kannst du mir auch mal den PHP-Code der Seite zeigen, dann könnte ich dir genauer sagen wie ein Script für die Druckversion aussehen könnte.

Wenn du ein externes Script benutzen willst könnte man da auch eine Art "Quick & Dirty"-Hack im Stile deines angehängten Scripts machen:

PHP-Code:

<html>
<head><title>Anmeldung drucken</title>
</head>

<body>
<?PHP
ob_start
(); // Ausgabepuffer starten
include 'anmeldung.php'// Anmeldung aufrufen
$html ob_get_contents(); // Ausgaben nach $html abfangen
ob_end_clean(); // Ausgabepuffer löschen und beenden.

// Mit preg_match den Inhalt zwischen den beiden Inhaltsmarkierungen "matchen" und das Ergebnis in $match schreiben und ausgeben.
if(preg_match('/<!-- #BeginEditable "inhalt" -->(.+?)<!-- #EndEditable -->/s'$html$match)) {
        echo 
$match[1];
} else {
        echo 
"Fehler beim Generieren der Druckversion!";
}
?>
</body>
</html>

Das Ganze dann in eine Datei gespeichert und ins gleiche Verzeichnis von "anmeldung.php" gelegt. Keine Ahnung ob das so auch bei dir funktioniert - sauberer wäre natürlich eine Seite zu programmieren die die Anmeldung gleich ohne Navigation und Kopf ausgibt. Ansonsten würde dieser Hack, wenn sich die Markierungen von Anfang und Ende des Inhalts mal ändern, nicht mehr funktionieren.

Norbert 25.08.2004 22:37

ok das schaue ich mir morgen nochmal in Ruhe an, vielen Dank!

Norbert

Norbert 26.08.2004 07:13

Yoh das hat funktioniert! danke Dir...

Ich habe jetzt eine saubere Ausgabe nur der Anmeldung. Und für die Leute, die direkt die Druckfunktion des Browsers nutzen habe ich das hier in den Head gebaut:

<link rel="alternate" media="print" href="printershow.php">

Wobei die Datei printshow.php Dein Hack ist.

Gruß Norbert


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25