在开发过程中遇到个需求,需要打印文件,在手机上实现打印,然后在手机上只能隔空打印,或者连接蓝牙打印机,本教程跳过前面的步骤,电脑触发按钮,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参数手册
文章评论(0)