2016-11-04 4 views
0

Ich habe ein Problem mit dem Drucken direkt von PHP, und ich möchte nicht window.print verwenden, weil das abhängig von dem Browser ist. So verwende ich diese stattdessen:Drucken Sie direkt von PHP

<!DOCTYPE html> 
<html> 
<body> 
<textarea rows="5" cols="50"> 
<?php 
$myfile = fopen("test.txt", "w") or die("Unable to open file!"); 
$txt = "John Doe\n"; 
fwrite($myfile, $txt); 
$txt = "Jane Doe\n"; 
fwrite($myfile, $txt); 
fclose($myfile); 
$file = file_get_contents('./test.txt', FILE_USE_INCLUDE_PATH); 
echo $file; 
$printer = printer_open("Adobe PDF"); 
if($ph = printer_open($printer)) 
    { 
    // Get file contents 
    $fh = fopen("test.txt", "rb"); 
    $content = fread($fh, filesize("test.txt")); 
    fclose($fh); 

    // Set print mode to RAW and send PDF to printer 
    printer_set_option($ph, PRINTER_MODE, "RAW"); 
    printer_write($ph, $content); 
    printer_close($ph); 
} 
else "Couldn't connect..."; 
?> 
?> 
</textarea> 

</body> 
</html> 

Ich habe bereits die php_printer.dll Erweiterung hinzugefügt, aber ich habe die folgenden Fehler statt:

John Doe 
Jane Doe 
<br /> 
<b>Warning</b>: printer_open(): couldn't connect to the printer [Resource id #5] in <b>F:\LOKAL\text\text.php</b> on line <b>15</b><br /> 
?> 

Was mit diesem falsch? Vielen Dank.

+1

Und Sie sind sicher, dass dieser physische Drucker dem Serversystem bekannt ist? Das wäre ein etwas exotisches Setup, wenn auch nicht unmöglich. Vielleicht möchten Sie stattdessen einen netzwerkbasierten Ansatz verwenden, um ein Dokument an einen netzwerkfähigen Drucker oder einen Druckserver zu senden. Zum Beispiel gibt es Erweiterungen für das Drucksystem "CUPS". – arkascha

Antwort

1

dieser Code.

$printer = printer_open("Adobe PDF"); 

Wechsel zu

$printer = "Adobe PDF"; 
+0

funktioniert wie ein Charme –

0

Als ich nach Bedeutung nicht kommentieren kann, schreibe ich es hier: Ich glaube, Sie richtig zwischen Client und Server nicht teilen. Im Browser des Clients läuft JavaScript, mit dem der Benutzer ein Dokument auf seinem eigenen Drucker ausdrucken kann. Aber PHP ist komplett serverseitig. Das würde bedeuten, dass Sie die Druckerfunktionen verwenden, Sie können nur auf Geräten drucken, die mit dem Server verbunden sind. Ich glaube nicht, dass du das willst.

window.print() wird von allen wichtigen Browsern unterstützt, so sehe ich keinen Grund, warum Sie es nicht verwenden können.