谁熟悉php_printer如何使用php操作连接到windows的打印机?

查看:351
本文介绍了谁熟悉php_printer如何使用php操作连接到windows的打印机?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

打印机是godex 的ez1105 经济型
标签打印机,使用这个打印机需要安装他的驱动以及使用相应的软件绘制条码进行打印,现在的需求是使用php对打印机进行打印内容的指定和打印操作,如何解决?除了php的方案,是否有其他的方式?

php_printer

<?php
$handle = printer_open('Godex EZ-1105');
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$lfont = printer_create_font("Arial", 30,30, PRINTER_FW_BOLD, false, false, false, 0);
printer_select_font($handle, $lfont);

printer_set_option($handle, PRINTER_MODE, "RAW");
printer_set_option($handle, PRINTER_PAPER_FORMAT, PRINTER_FORMAT_CUSTOM);
printer_set_option($handle,PRINTER_PAPER_WIDTH,42);
printer_set_option($handle,PRINTER_PAPER_LENGTH,30);

echo printer_get_option($handle,PRINTER_RESOLUTION_X);
echo '<br ?>';
echo printer_get_option($handle,PRINTER_RESOLUTION_Y);
echo "<br />";
echo 'format'.printer_get_option($handle,PRINTER_PAPER_FORMAT);
echo "<br />";
echo "modal".printer_get_option($handle,PRINTER_MODE);
echo "<br />";
echo "width".printer_get_option($handle,PRINTER_PAPER_WIDTH);
printer_draw_text($handle, "Msup", 260, 0);
printer_delete_font($lfont);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

解决方案

最终找到的一个可能的原因是,使用浏览器执行php 去访问打印机,应该会读取浏览器的打印配置(只是可能原因),在命令行中直接执行调用打印机的php脚本,可以正确进行打印,可以正确读取打印机的配置首选项。

另外:因为ez1105这款标签打印机是属于一个入门版的打印机,并且只能通过usb方式进行连接.

  1. 如果是网络打印机的话,可以使用socket直接进行通信

  2. 如果你的打印机支持esc pos指令集,可以使用这个库mike42/escpos-php

附:php_printer.dll扩展下载地址

最后感谢incNick同学给出的解决思路!


2016/6/7更新
找到上面命令行可以正常打印浏览器打印不正常的原因——是因为用户权限的问题,因为使用命令行打印是以管理员的什么运行的,可以读取系统设置,而Apache运行是以当前系统登录用户的身份去执行,所以解决办法就是将当前Windows登录用户切换到超级管理员,或者在Apache service中对服务属性进行修改!

第二个遇到的问题是中文乱码的问题,解决办法是在create_font的时候第一个参数$face,需要选择一个支持UTF-8编码的中文字体,并且确认你的打印机编码的类型!

最终简单总结了一下,地址:http://www.cnblogs.com/skyfyn...

这篇关于谁熟悉php_printer如何使用php操作连接到windows的打印机?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆