2016-11-04 60 views
0

我有一个直接从php打印的问题,我不想使用window.print,因为这取决于浏览器。所以我用这个代替:直接从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> 

我已经添加了php_printer.dll extention,但我得到了下面的错误,而不是:

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

如何处理此问题?谢谢。

+1

你确定这台物理打印机是服务器系统已知的吗?这将是一个有点异国情调的设置,虽然不是不可能的。也许您想尝试使用基于网络的方法,以便将文档发送到支持网络的打印机或打印服务器。例如,有'CUPS'打印系统的扩展。 – arkascha

回答

1

此代码。

$printer = printer_open("Adobe PDF"); 

更改为

$printer = "Adobe PDF"; 
+0

工程就像一个魅力 –

0

正如我有意义无法评论,我在这里写:我认为你不正确的客户端和服务器之间进行分配。 JavaScript运行在客户端的浏览器中,可以让用户在自己的打印机上打印文档。但PHP完全是服务器端的。所以这意味着使用打印机功能,您只能在连接到服务器的设备上打印。我不认为这是你想要的。

window.print()受所有重要浏览器支持,所以我没有看到你无法使用它的原因。

相关问题