我想直接打印收据(当然是静默的)到附加到本地wamp托管应用程序中的客户端系统的各个点阵打印机。虽然我在mozilla中使用jsprintsetup是成功的。但打印机速度始终是一个挑战。
几天后,我能够直接从php应用程序发送打印作业,没有任何延迟,打印机也从localhost服务器和客户端系统响应极好。但是我在Windows域网络中测试了这个应用程序,并且在实际情况下不会有任何域网络,并且应用程序要求在具有或不具有域的任何LAN中完成此操作。我不确定,但没有域网可能是问题。
真正搞砸的事情是;
localhost服务器打印收据。没有问题!从客户端我们可以将打印作业发送到连接到localhost服务器的打印机。超细!
但是没有打印机连接到连接到客户端系统的打印机,也不是从客户端到服务器。
Php警告:("警告:fopen(\ 192.168.1.13 \ TVS MSP 250 Star):无法打开流:D:\ wamp")中的权限被拒绝
注意:我一直运行以完成此操作,包括安装php_printer.dll,共享具有完全权限的wamp和www文件夹,使用" \\ systemname \ printername"还有很多其他东西来检查是否会这样做..但没有帮助......
请帮帮我..
这是我的代码;
$bold1 = Chr(27) . Chr(69); // semi em. bold
$bold0 = Chr(27) . Chr(70); // ""
$initialized = chr(27).chr(79);
$initialized = chr(27).chr(64); // initialize printer
$initialized .= chr(27).chr(51).chr(40); //Select 6 lines per inch Line Spacing
$initialized .= chr(10).chr(12).chr(15).chr(50).chr(20); // Draft, Font, Pitch
$initialized .= chr(27).chr(79); // Cancel Skip Perforation
$initialized .= chr(27).chr(106).chr(108); // Reverse Line Feed
$condensed0 = chr(18);
$initialized .= chr(27).chr(97).chr(0); //justify left
$initialized .= chr(27).chr(37).chr(0); // Selects normal character set
$initialized .= chr(27).chr(67).chr(15); // Page Length
$initialized .= chr(27).chr(67).chr(5);
$initialized .= chr(13);
$data = $initialized;
$data .= chr(27).chr(79); // Cancel Skip Perforation
$data .= chr(27).chr(120).chr(48); // Select Draft Mode
$data .= chr(27).chr(97).chr(0); // Justify Center
//$data .= chr(14); // Double Width For One Line
//$condensed1 = chr(15);
$data .= $bold1." HEADER ".$bold0."\n";
$data .= chr(10);
$data .= " "SUB HEADER" "."\n";
//$data .= chr(10);
$data .= " "."BASE LINE".""."\n";
//$data .= chr(10);
$data .= " "."\n";
$data .= "Date: ".$time." "."\n";
$data .= "|----------------------------------------------------------|\n";
$data .= "Thank You! Print Testing Successfull"."\n";
$data .= "|----------------------------------------------------------|\n";
$data .= chr(27).chr(102).chr(49);
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$data .= " \n";
$fop = fopen($printer, "RAW");
if (!$fop){
echo 'Selected Printer: '.$printer;
print "<br/>";
print "<img src=\"$image2\" width=\"16px\" height=\"15px\"\ align=\"absmiddle\"/>";
print " ";
echo 'Sorry! Could Not Connect To The Selected Printer';
print "<br/>";
}
else
{
print "<br/>";
print "<img src=\"$image\" width=\"16px\" height=\"15px\"\ align=\"absmiddle\"/>";
print " ";
echo 'Printer Connected Successfully';
}
$data .= "\x00\x1Bi\x00";
if (!fwrite($fop,$data)){
print "<img src=\"$image2\" width=\"16px\" height=\"15px\"\ align=\"absmiddle\"/>";
print " ";
echo 'Printing Failed!';
print "<br/>";
}
else
{
print "<br/>";
print "<img src=\"$image\" width=\"16px\" height=\"15px\"\ align=\"absmiddle\"/>";
print " ";
echo 'Printing Succeeded!';
print "<br/>";
}
答案 0 :(得分:0)
也许你已经解决了这个问题,但这可能有助于解决类似问题。
如果您希望客户端在客户端打印机中打印,那么为什么不在客户端计算机上安装webserver和php,并让客户端计算机运行本地打印的php代码。
使用POST方法或类似方法将数据从服务器网站传递到本地。