在开发过程中遇到个需求,需要打印文件,在手机上实现打印,然后在手机上只能隔空打印,或者连接蓝牙打印机,本教程跳过前面的步骤,电脑触发按钮,ajax异步执行PHP自动打印。示例如下:
一、打印机扩展安装
扩展下载:php_printer
注意事项:PHP最高版本仅支持到PHP5.5
下载好扩展之后,安装PHP扩展,并开启
extension=php_printer.dll;
二、连接热敏打印机,安装打印机驱动
三、使用PHP代码连接并实现打印功能
<?php
$printerName = "XP-58"; // 打开指定名称的打印机
$command = "wmic printer where name='$printerName' get workoffline";
$output = array();
exec($command, $output);
if (isset($output[1]) && trim($output[1]) == "FALSE") {
// return response(500,'error','打印机在线');
} else {
return response(500,'error','打印机脱机');
}
$printer = printer_open("XP-58"); // 打开指定名称的打印机
if ($printer) {
try {
printer_start_doc($printer, geticonv(isNull($dataRes['ctm_name']).'-分诊打印')); // 开始打印文档
printer_start_page($printer); // 开始打印页
printer_set_option($printer, PRINTER_MODE, "RAW"); // 设置打印模式为原始数据
// printer_draw_text($handle,'要打印的文字',起始x,起始y);
$font = printer_create_font("Microsoft YaHei", 35, 11, 700, false, false, false, 0);
printer_select_font($printer, $font);
printer_draw_text($printer,geticonv('发票信息'),10,50);
$font2 = printer_create_font("Microsoft YaHei", 35, 11, 400, false, false, false, 0);
printer_select_font($printer, $font2);
printer_draw_text($printer,geticonv('发票号码:2023011111122'),10,180);
printer_draw_text($printer,geticonv('开票金额:'),10,230);
printer_end_page($printer); // 结束打印页
printer_end_doc($printer); // 结束打印文档
printer_close($printer); // 关闭打印机
return response(200,'success','打印成功');
}catch (Exception $e) {
return response(500,'error','打印机错误'.$e->getMessage());
}
}else{
return response(500,'error','打印机连接失败'.$e->getMessage());
}
?>四、php_printer使用说明
更多说明,参考:php_printer参数手册
关于简忆
简忆诞生的故事



粤ICP备16092285号
文章评论(0)