2016-11-04 1 views
0

J'ai un problème avec l'impression directement à partir de php, et je ne veux pas utiliser le window.print parce que cela dépend du navigateur. Donc, je me sers de ce lieu:Imprimer directement à partir de 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> 

J'ai déjà ajouté le extention php_printer.dll mais j'ai eu l'erreur suivante à la place:

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 /> 
?> 

Quel est le problème avec ça? Je vous remercie.

+1

Et vous êtes sûr que cette imprimante physique est connue du système serveur? Ce serait une configuration un peu exotique, mais pas impossible. Peut-être souhaitez-vous plutôt utiliser une approche basée sur le réseau, afin d'envoyer un document à une imprimante réseau ou à un serveur d'impression. Il y a des extensions pour le système d'impression 'CUPS' par exemple. – arkascha

Répondre

1

ce code.

$printer = printer_open("Adobe PDF"); 

Modification

$printer = "Adobe PDF"; 
+0

fonctionne comme un charme –

0

Comme je ne peux pas commenter de façon significative, je l'écris ici: Je pense que vous ne divisez pas correctement entre le client et le serveur. JavaScript est en cours d'exécution dans le navigateur du client, ce qui permet à l'utilisateur d'imprimer un document sur sa propre imprimante. Mais PHP est complètement côté serveur. Donc, cela signifierait utiliser les fonctions de l'imprimante, vous ne pouvez imprimer sur les périphériques se connectant au serveur. Je ne pense pas que ce soit ce que tu veux.

window.print() est pris en charge par tous les navigateurs importants, donc je ne vois pas pourquoi vous ne pouvez pas l'utiliser.