准备工作  在php.ini文件中打开 extension=php_sockets.dll
确保socket正常运行
<?php
header("Content-type: text/html; charset=utf-8"); class Netprint{
public $host = '192.168.2.200'; //打印机IP
public $port = 9100; //默认端口
public $socket; function initcon($host, $port = '9100'){//连接打印机 if(!empty($host) && !empty($port)){
$this->host = $host;
$this->port = $port;
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP) or die("Could not create socket.\n");
socket_set_nonblock($socket);
$con = @socket_connect($socket,$this->host,$this->port) or die("Could not connect server.\n");;
$flag = socket_select($r=array($socket), $w = array($socket), $f = array($socket), 2);
if($flag == '1'){
socket_set_block($socket);
}else{
$flag = socket_select($r=array($socket), $w = array($socket), $f = array($socket), 2);
if($flag == '1'){
socket_set_block($socket);
}else{
return false;
}
}
$this->socket = $socket;
return true;
}else{
return false;
}
}
function initprint(){//初始化打印
if($this->socket){
$sendstr1 = pack("C*", '27', '64');
socket_sendto($this->socket,$sendstr1,strlen($sendstr1),0,$this->host,$this->port); $sendstr2 = pack("C*", '27', '83');
socket_sendto($this->socket,$sendstr2,strlen($sendstr2),0,$this->host,$this->port); $sendstr3 = pack("C*", '27', '33', '0');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function sendprint($content){//打印内容 if($this->socket){ //$content = mb_convert_encoding($content,"GB2312","UTF-8");
$content = iconv("UTF-8","GB18030",$content);
$sendstr4 = pack('A*', $content);
socket_sendto($this->socket,$sendstr4,strlen($sendstr4),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function cutter(){//切纸
if($this->socket){ $content = mb_convert_encoding("\n\n\n\n\n\n\n","GB2312","UTF-8");
$sendstr4 = pack('A*', $content);
socket_sendto($this->socket,$sendstr4,strlen($sendstr4),0,$this->host,$this->port); $sendstr5 = pack("C*", '29', '86', '48');
socket_sendto($this->socket,$sendstr5,strlen($sendstr5),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function closecon(){//关闭连接
if($this->socket){ socket_close($this->socket); return true;
}else{
return false;
}
}
function normal(){
if($this->socket){ $sendstr3 = pack("C*", '29', '33', '0');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function middle(){//居中
if($this->socket){ $sendstr3 = pack("C*", '27', '97', '49');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function width_2x(){//宽*2
if($this->socket){ $sendstr3 = pack("C*", '29', '33', '16');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function height_2x(){//高*2
if($this->socket){ $sendstr3 = pack("C*", '29', '33', '1');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function bold(){//加粗
if($this->socket){ $sendstr3 = pack("C*", '27', '33', '8');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function underline(){//下划线
if($this->socket){ $sendstr3 = pack("C*", '27', '33', '128');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function align_left(){//左对齐
if($this->socket){ $sendstr3 = pack("C*", '27', '97', '48');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function align_right(){//右对齐
if($this->socket){ $sendstr3 = pack("C*", '27', '97', '50');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
function font_1x(){//字体大小1x
if($this->socket){ $sendstr3 = pack("C*", '27', '33', '0');
socket_sendto($this->socket,$sendstr3,strlen($sendstr3),0,$this->host,$this->port); return true;
}else{
return false;
}
}
} $net = new Netprint();
$msgtext = '';
$ret = $net->initcon('192.168.00.00'); //打印机IP
if($ret){
$net->initprint(); $net->width_2x();
$content = "宽成二\n";
$net->sendprint($content); $net->normal();
$net->normal();
$net->height_2x();
$content = "高成二\n";
$net->sendprint($content); $net->normal();
$net->normal();
$net->width_2x();
$net->height_2x();
//$net->bold();
//$net->middle();
$content = "宽高成二\n";
$net->sendprint($content); $net->normal();
$net->normal();
$net->font_1x();
$content = "普通字体\n";
$net->sendprint($content); $net->cutter();
//$net->closecon();
$msgtext = '打印成功';
}else{
$msgtext .= "打印机连接不上 ";
}
echo $msgtext;
?>

PHP连接打印机的更多相关文章

  1. PHP控制连接打印机

    一.需求 使用PHP控制连接打印机 现场实时连续打印动态数据 二.配置 php运行环境正确安装(Apache|Nginx + PHP) 下载与php版本对应的php_printer.dll扩展 扩展文 ...

  2. 打印机驱动冲突和端口异常:win10更新部分补丁后,打印机本地连接(连接打印机的主机)可以打印,其他共享网络中的电脑可以连接到打印机,但不能打印——解决方案

    一.问题描述: 1.A(WIN10系统)表示连接打印机的电脑,P表示打印机(型号:惠普127M),B(WIN7系统)表示局域网中的电脑 2.A升级后部分补丁后,A可以使用打印机P打印文件,B显示可以连 ...

  3. 计算机windows7连接打印机

    计算机连接打印机 (1)查看打印机的名字. 示例,打印机名为 HP LaserJet M1522 .... (2)打开windows开始菜单,点击[设备和打印机],然后查看打印机和传真那个区域是否有打 ...

  4. centos7 连接打印机

    centos7 连接打印机 2017-08-07 15:05:33 五岳寻仙客 阅读数 2531更多 分类专栏: Liunx的日常使用   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版 ...

  5. 基于 Koa平台Node.js开发的KoaHub.js连接打印机的代码

    最近好多小伙伴都在做微信商城的项目,那就给大家分享一个基于 Koa.js 平台的 Node.js web 开发的框架连接微信易联云打印机接口的代码,供大家学习.koahub-yilianyun 微信易 ...

  6. 局域网连接打印机(Win10)

    局域网支持交换机和WIFI环境下进行连接(要求连上打印机的电脑已开启) 1.首先打开控制面板 2.硬件和声音 3.高级打印机设置 4.找到要连接的打印机,通过浏览(R) 添加局域网某台机器上的打印机, ...

  7. android连接打印机

    android连接  网络打印,主要使用socket连接设备,发送指令给设备. 首先要有设备的IP,端口号一般默认的是9100 //打印设备网络IP etIp.setText("192.16 ...

  8. mac os 10.12 Sierra 连接 惠普 M1136 MFP 打印机,通过 samba 协议,安装驱动,连接打印机

    参考链接: https://support.hp.com/hk-zh/product/hp-zbook-17-g3-mobile-workstation/8693765/document/c04530 ...

  9. win7系统 连接打印机 提示 “正在检查 windows update 需要一段时间”

    现象:  在客户端 添加 打印机时,出现  “网络安装打印机 一直在检查 windows update”  提示 处理:等待上述提示结束后,会出现手动添加 提示窗口,在框内选择打印机驱动 .

随机推荐

  1. discuzX3后台管理插件开发示例一 用户表查询

    上次的入门已经介绍了后台管理插件开发的基本步骤,下面简单写一个示例查询一下用户表 需要已完成以下操作: 1.已创建test后台管理插件 //详见 http://www.cnblogs.com/savo ...

  2. listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

    oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下. 英文说明: The ...

  3. echo 单引号和双引号

    echo输出 $key=value echo "$key" echo 后面带双引号的话,双引号里面的内容会翻译,输出value echo '$key' echo后面带单引号的话,双 ...

  4. 百度和google的区别

    一.百度 二.google

  5. ffmpeg-20160520-git-bin

    ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...

  6. Python:IDLE清屏

    清屏很简单,为IDLE增加一个清屏的扩展ClearWindow即可. 首先下载clearwindow.py(点击可直接下载,不能下载的可以右键保存,格式为py结尾), 将这个文件放到Python安装目 ...

  7. codeforces 540B.School Marks 解题报告

    题目链接:http://codeforces.com/problemset/problem/540/B 题目意思:给出 k 个test的成绩,要凑剩下的 n-k个test的成绩,使得最终的n个test ...

  8. 【leetcode】length of last word (easy)

    题目: 输入字符串 s,返回其最后一个单词的长度 如 s="Hello World"   返回5 s="Hello World    "   返回5 s=&qu ...

  9. MAC系统下,删除.svn文件

    MAC系统下,.svn文件是隐藏的. 如果项目是非export导出的,那么项目中会有很多的.svn文件. 如果项目的体积非常庞大,我们如何快速的批量删除.svn文件呢?下面是操作方法: 打开终端,cd ...

  10. java课后作业7

    9.页实验 下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 答: d=m;和d=c;引起编译错误: 原因: ...