Druckerfreundliche Seiten in der Druckvorschau anzeigen

latitude

Mitglied
Hi,

ich möchte die Seiten, die ausgedruckt werden können nicht einfach per Druckdialog des Browsers drucken, sondern vorab eine um unnötige Elemente wie Header, Footer, Navigation etc. HTML Seite als Vorschau anzeigen. Auf Javascript möchte ich verzichten daher habe ich mir folgenden Lösungsansatz ausgedacht:

Zunächst werden zwei css Dateien erstellt, eine für den Bildschirmbereich "screen", die zweite für den Druck "print". Diese beinhaltet die "Bereinigung". Auf diese Weise ist nun sichergestellt, dass die Inhalte beim Drucken bereits Druckerfreundlich optimiert werden.

Ich möchte jedoch die Seite wie erwähnt in einer Vorschau zeigen, damit der User sieht, was er druckt! Aus diesem Grund greife ich auf eine einfache PHP Lösung zurück:

Vor dem HTML Quellcode setze ich folgenden PHP Code:
Code:
PHP:
<?php
//Prüfen ob die Variable existiert//
if(isset($_GET[action])){

//Prüfen ob der Wert für den Druck korrekt übermittelt wurde//
if($_GET[action] == "print"){
$style = "css/druck.css";
}
//Prüfen ob der Wert für den Druck eventuell per Browserzeile editiert oder manipuliert wurde//
else{
$style = "css/screen.css";
}
}
//Anweisung wenn $_GET[action] nicht existiert//
else{
$style = "css/screen.css";
}
?>


Der Link für die css Datei des Bildschirms wird mittels

PHP:
<?php echo $style;?>
innerhalb des Tags ausgeben.
Der Aufruf der Seite erfolgt mittels auslesen der URL Parameter inkl. hinzufügen der Variablen action. Ich habe es lokal getestet und es scheint zu funktionieren.

Da ich jedoch kein PHP Guru bin, möchte ich Euch hier fragen, ob ich irgendwo einen Denkfehler habe oder etwas nicht berücksichtigt wurde. Ich denke eine Lösung in der die Druckvorschau statt des Browserdruckdialogs angezeigt wird, interressiert einige.

Vielen Dank für Eure Hilfe!
 
Ich versteh zwar nicht warum du das jetzt gepostet hast, aber ich würd sagen stimmt alles soweit.
Schöner wäre es vllt. das ganze als PDF auszugeben.
Gruß
Garlof
 
Ich habe es gepostet, da ich kein Profi in PHP bin und zudem sicher gehen möchte, dass ich nicht eine Möglichkeit übersehen habe, warum das ganze speziell Browserunabhängig nicht funktionieren wird.

Sorry wenn das nicht richtig war.
 
Prinzipiell ist deine Idee machbar. Besser wäre jedoch Folgendes:
PHP:
<?php

	$screenStylesheet = ( isset($_GET['printable']) && $_GET['printable'] == true )
		? 'css/druck.css'
		: 'css/screen.css';

?>
	<link rel="stylehsheet" type="text/css" media="screen" href="<?php echo $screenStylesheet; ?>">
	<link rel="stylehsheet" type="text/css" media="print" href="css/druck.css">
Damit wird das Druck-Stylesheet auch ohne Druckvorschau verwendet.
 
Zurück