Hallo!
Ich habe es so verstanden, dass eine Textdatei gedruckt werden soll. Wenn der zu druckende Inhalt auch in ein Dokument eingebunden werden kann, sollte das ja kein Problem mehr sein.
Mit einer reinen ASCII-Datei und der include() Funktion von PHP ist es kein Problem.
So erfährt der User weder den Dateinamen noch den Pfad zur Datei.
Und den Inhalt der Datei bekommt er ja sowieso zu sehen..... spätestens nach dem Ausdruck.
Allerdings ist zu bedenken dass dabei alle Zeilenumbrüche und Leerzeilen verloren gehen..... es wird also zu einem reinen Blocksatz.
Noch schlimmer ist es dass bestimmte Zeichenfolgen (z.b. Code-tags) zu Problemen führen.
Sinnvoller wäre es also die Datei auszulesen:
PHP:
<?php
$file = "php.ini";
$handle = fopen($file, "r");
$contents = fread($handle, filesize($file));
echo nl2br(htmlspecialchars($contents));
?>
Zumindest mit der php.ini, die ja reichlich Sonderzeichen und auch Code-tags enthält, konnt ich spontan keine Probleme feststellen.
Zeilen werden, wenn sie nicht zur druckbaren Breite passen, entsprechend umbrochen (ich habe testhalber einfach mal den rechten Seitenrand auf 10cm gestellt
).
Und in der druckbaren Höhe kommen halt soviele Zeilen wie sie auf eine Seite passen.
Du könntest die Ausgabe vom echo sogar in ein DIV-Container packen und so z.b. mittels CSS eine andere Schrift bestimmen.
Und wie tombe schon gesagt hat, den Druckdialog einfach per onload auslösen.
Ob der Text, der nach dem Ausdruck eh zu sehen ist, auf der Printseite mittels "@media screen" ausgeblendet wird, ist wohl eher Geschmacksssache.
Wirklich sinnvol sind "@media screen" bzw. "@media print" z.b. bei Links.
So kann ein Link der sich auf der Seite hinter "hier klicken" verbirgt, im Ausdruck im Klartext mit ausgedruckt werden (auf einem Ausdruck macht "hier klicken" ja nicht wirklich sinn
).
Gruss Dr Dau