COMWAY云打印API参考手册

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

COMWAY云打印API参考手册
本章节介绍COMWAY云打印提供的所有应用程序接口、方法以及对应的参数。

中文传输编码为UTF-8。

具体而言,COMWAY云打印API支持您的网站/业务系统用以下方式调用COMWAY云打印云打印机,
1.发送数据到COMWAY云打印输出。

2.查询打印机工作状态(例如:正常、纸少、缺纸等)
1.PHP API 接口
此API接口适合于PHP架构的网站使用,需要用户确认的是该网站是否允许php页面创建临时的log文件。

是否可以创建文件可以通过api接口中的testdir.php测试。

结果显示为是否可以创建目录以及是否可以创建文件,若不允许创建目录,请先创建dtulog目录,并将权限改为777。

1.1接口包含文件
PHP API接口主要包含以下几个文件:
dsconfig.class.php:API库的常用参数设置,具体参数以及解释可以参考代码说明。

dsprint.class.php:API库的打印主要类DsPrintSend,通过该类实现打印。

dsreceive.class.php:API库的接收函数,异步通讯接收打印机的响应。

HttpClient.class.php:API库的支持HTTP 协议的客户端编程工具包。

测试参考代码文件:
testdir.php:用于测试PHP网站空间是否支持创建目录以及创建文件,具体测试代码可以参考代码。

apitest.php: 打印测试示例代码。

用于直接调用API库进行打印测试,某些参数依赖于dsconfig.class.php里面的设定。

index.php: Comway云打印中心测试网页代码,参考范例。

printapi.php: Comway云打印中心测试网页显示打印结果代码,参考范例。

1.2接口调用流程
1.搭建PHP API环境
a.按照自己的环境需求,必须更改dsconfig.class.php文件里面的参数定义。

主要
涉及以下几个参数:
define('APP_ID','your_appid');//每个申请使用Comway云打印的用户即
可分配一个唯一的appid号,此处填写您的appid
define('DSUSERID','your_userid');//无线串口登录用户名,此处填写您
的userid
define('PASSWORD','your_password');//无线串口用户登录密码,此处填写您的密码
//查询打印机状态的指令
define('QUERY_PRINTER',"\x1B\x76");//各个打印机可能查询纸状态指
令不同,默认为:0x1B,0x76,佳博打印机的查询指令
//内网中测试可以打印,但是可能会提取不到打印机的结果,这是因为COMWAY云
打印服务采取异步通讯,url callback的方式提交结果,在公网中访问不到您的内网dsreceive.class.php网页。

//当网页发布到公网空间后,若公网可以访问到您网站空间的
dsreceive.class.php网页,即可提取到结果。

$receivephp=':5858/dsreceive.clas
s.php';//填写您的空间访问地址,这个地址只是一个范例
//临时文件目录,云打印需要写临时文件,可根据用户情况更换路径,默认在下级
dtulog目录下。

//可以根据用户情况更改路径,路径为相对路径,用户也可以更改为绝对路径,例
如: /home/vhosts//dtulog/;若PHP空间不允许
页面执行脚本创建目录,可以用户手工创建目录dtulog。

$dtupath='dtulog/';//建议更改为绝对路径
$dtutmplines=30;//保存dtu log的记录数。

默认不需要修改。

$errorlog=false;//是否输出log,默认保存错误log的文件为$dtupath目录下的errlog.txt。

初期调试时可设为true,生产上线一段时间后,可设为false。

b.确认页面及打印机支持的中文编码。

默认是页面传输UTF-8编码转换成打印机
支持的GBK编码。

$text=mb_convert_encoding($text,"GBK","UTF-8");
将对应的编码转换为GBK编码,因多数打印机支持的中文都是该编码。

注:若有特殊,请对应更改页面传输过来的中文编码,以及打印机支持的中文编码。

如果在传入字符串中有打印机的指令,则可能造成转码失败。

在这种情况下,可以
先将打印的字符串转成GBK后,再添加打印机指令,参照”API打印技巧及说明”。

c.将dsconfig.class.php、dsprint.class.php、dsreceive.class.php、HttpClient.class.php
等API库文件上传到服务器的PHP空间,即可调用API库函数。

2.API使用
1.在需要调用打印库函数的页面头声明包含库文件:
require_once'dsprint.class.php';
2.初始化库函数,参数可以不输入,为dsconfig里面设定的密码和appid。

$client = new DsPrintSend('your_password','your_appid');
或者:
$client= new DsPrintSend();//dsconfig里面设定的默认密码和appid
3.打印或者查询打印机状态函数printtxt,dtuid为必须指定的参数。

参数:dtuid, 指定打印的dtuid号
text, 需打印文本,若为空,则调用查询指令
timeout, 超时时间,默认是60s。

querycmd, 打印机查询状态指令,不同打印机可能不同,默认为
dsconfig里面设定的查询指令。

返回:打印机查询状态的指令返回的结果,为字符串,例如“00”=’\x00’
例如:
$client->printtxt('your_dtuid',$freeTxt,60,”\x1B\x76”);
或者查询打印机状态调用:
$client->printtxt('your_dtuid');//dsconfig定义的指令查询打印机
状态。

4.更改dsreceive.class.php的访问链接为dsconfig.class.php中设置的链接。

$client->changeurl();//该函数不要在每次打印前调用,一次调用,即生效。

该函数将COMWAY云打印服务器数据库中对应用户的dsreceive的访问链接更改
为dsconfig里面设置的$receivephp值。

COMWAY云打印服务器在初期分配客户appid时,默认将客户的dsreceive的
URL设置为:/dsreceive.class.php
一般客户在建站初期测试阶段可能有需求更改此设置为客户自己的网站空间链接。

更改后,只要此URL不变,则无需调用此函数。

3.API测试
将testdir.php、apitest.php等API库测试文件上传到服务器的PHP空间,即可测试COMWAY云打印的库函数调用。

1.目录及log临时文件测试testdir.php
修改testdir.php的测试代码,验证服务器或者php空间是否允许创建文件夹以
及文件。

若不允许创建文件夹,请手工创建目录dtulog,并且修改该目录权限
为777。

然后测试是否可以在此目录下创建文件,若可以。

则API库可正常使用,
若不行,请更改为绝对路径后再试。

若还是不行,请联系技术支持或者联系PHP
空间提供商。

2.打印及查询打印机测试apitest.php
该代码非常简单,请更改代码中的参数后,测试是否可以正常打印或者查询,
若没有问题,则API的库的调用以及DTU、打印机连接都没有问题。

3.用户接收打印结果的URL是否可以正常访问
用户访问$receivephp里面设置的接收打印结果处理的URL,看是否能正常显示
OK。

若没有问题,且公网也能访问,用户调用changeurl函数,通知COMWAY云
打印中心将打印结果的回传URL改为用户指定的URL。

服务器需要5分钟后,地
址即生效,用户以后的打印结果将会回传到$receivephp指定的URL。

4.API错误解决
1.核实PHP空间是否支持创建文件。

2.若apitest.php很快返回error,请核实appid以及密码是否正确,dsconfig文件
里面的参数是否设置正确,dtuid是否在此账号下且已经正常上线。

开启错误输
出功能,设置$errorlog=true后重试,查看dtulog/errlog.txt文件,若
在errlog中看到如下提示:php_network_getaddresses: getaddrinfo failed: Name or service not known,可以改成IP:125.208.3.26。

具体请参照dsprint.class.php代码里面提示内容。

3.若apitest.php较长时间返回error,请查看dtulog下是否有该dtuid的文件。


认dtu与打印机之间连线是否正确。

Dtu与打印机的连线可以通过COMWAY公
司提供的无线串口软件进行测试。

4.若apitest.php打印机可以正确打印,但是长时间得不到响应结果。

则表明API
的调用基本没有问题,有可能又一下几种原因:
1.用户在本地测试,没有将返回结果请求的http链接更改为测试链接,或者
公网访问不了本地的测试链接。

此错误情况待用户发布到公网的PHP空间
后就不会存在了。

2.用户已经更改了$receivephp参数,且公网可以访问此链接,访问时该链接
显示为OK。

则有可能从来没有调用过dsprint.class.php里面的
changeurl函数,使得COMWAY云打印的服务器并没有同步更改为用户指定
的dsreceive.class.php链接,这样打印结果也就无法传到该页面进行处
理。

3.查询是否有log文件,包括dtulog文件和错误的log文件,若没有log文
件,则确认用户的PHP空间是否允许创建文件。

API 接口
此API接口适合于架构的网站使用,编程语言为C#。

2.1接口包含文件
API接口主要包含以下几个文件:
dsprint.class.cs:API库的主要调用函数,在App_Code目录下。

dsreceive.class.aspx.cs: API库的接收函数,异步通讯接收打印机的响应。

测试参考代码文件:
dsprint_apitest.aspx:用于测试库函数的接口。

Default.aspx: Comway云打印中心测试网页代码,参考范例。

printapi.aspx.cs: Comway云打印中心测试网页代码,参考范例。

2.2接口调用流程
1.搭建 API环境
a.按照自己的环境需求,必须更改dsprint.class.cs文件里面的参数定义。

主要涉
及以下几个参数:
public const string APP_ID= "your_appid";//每个申请使用Comway云打印的用户即可分配一个唯一的appid号,此处填写您的appid
public const string DSUSERID= "your_userid";//无线串口登录用户名,此处填写您的userid
public const string"your_password";//无线串口用户登录密码,此处填写您的密码
//查询打印机状态的指令
public byte[] QUERY_PRINTER=new byte[]{0x1B,0x76}; //各个打印机可能查询纸状态指令不同0x1B,0x76,默认为:0x1B,0x76,佳博打印机的查询指令
//内网中测试可以打印,但是可能会提取不到打印机的结果,这是因为COMWAY云打印服务采取异步通讯,url callback的方式提交结果,在公网中访问不到您的内网dsreceive.class.aspx 网页
//当网页发布到公网空间后,若公网可以访问到您网站空间的dsreceive.class.aspx网页,
即可提取到结果。

public const string
receiveurl=@":5858/dsreceive.class.aspx";
//临时文件目录,云打印需要写临时文件,可根据用户情况更换路径,默认在下级dtulog目录下。

//可以根据用户情况更改路径,路径为相对路径,用户也可以更改为绝对路径,例如:
/home/vhosts//dtulog/
public string dtupath = HttpContext.Current.Server.MapPath("~") +"/dtulog/";//当前网站目录
public static int dtutmplines=50;//保存dtu log的记录数。

默认不需要修改。

public static bool errorlog=false;//是否输出log,默认保存错误log的文件为dtupath 目录下的errlog.txt。

b.确认页面及打印机支持的中文编码。

byte[] buffer = Encoding.GetEncoding("GBK").GetBytes(text);
将对应的编码转换为GBK编码,因多数打印机支持的中文都是该编码。

注:若有特殊,请对应更改页面传输过来的中文编码,以及打印机支持的中文编码。

如果在传入字符串中有打印机的指令,则可能造成转码失败。

在这种情况下,可以
先将打印的字符串转成GBK后,再添加打印机指令,参照”API打印技巧及说明”。

c.网站发布到空间,即可调用API库函数。

2.API使用
1.初始化库函数,参数可以不输入,为dsprint.class.cs里面设定的密码和appid。

DsPrintSend ds = new ("your_password", "your_appid");
或者:
DsPrintSend ds = new DsPrintSend();//DsPrintSend里设定的默认密码和appid
2.打印或者查询打印机状态函数printtxt,dtuid为必须指定的参数。

参数:dtuid, 指定打印的dtuid号
text, 需打印文本,若为空,则调用查询指令
timeout, 超时时间,默认是60s。

querycmd, 打印机查询状态指令,不同打印机可能不同,默认为
dsprint.class.cs里面设定的查询指令。

返回:打印机查询状态的指令返回的结果,为字符串,例如“00”=’\x00’
例如:
string re = ds.printtxt("your_dtuid", "中国abcdef");
或者查询打印机状态:
string re = ds.printtxt("your_dtuid");//DsPrintSend里设定的默认指令查询打印机
状态。

3.更改dsreceive.class.aspx的访问链接为dsprint.class.cs中设置的链接。

string re = ds.changeurl();
该函数将COMWAY云打印服务器数据库中对应用户的dsreceive的访问链接更改
为dsprint里面设置的receiveurl值。

COMWAY云打印服务器在初期分配客户appid时,默认将客户的dsreceive的
URL设置为:/dsreceive.class.php
一般客户在建站初期测试阶段可能有需求更改此设置为客户自己的网站空间链接。

更改后,只要此URL不变,则无需调用此函数。

3.API测试
将Default.aspx、printapi.aspx、dsprint_apitest.aspx等API库测试文件上传到服务器的空间,即可测试COMWAY云打印的库函数调用。

访问dsprint_apitest.aspx即可测试API。

用户访问receiveurl里面设置的接收打印结果处理的URL,看是否能正常显示OK。

若没有问题,且公网也能访问该链接,用户调用changeurl函数,通知COMWAY 云打印中心将打印结果的回传URL改为用户指定的URL。

服务器需要5分钟后,地址即生效,用户以后的打印结果将会回传到receiveurl指定的URL。

4.API错误解决
1.核实空间是否支持创建文件。

2.若dsprint_apitest.aspx很快返回error,请核实appid以及密码是否正确,dsprint
文件里面的参数是否设置正确,dtuid是否在此账号下且已经正常上线。

开启错
误输出功能,设置errorlog=true后重试,查看dtulog/errlog.txt文件。

3.若dsprint_apitest.aspx较长时间返回error,请查看dtulog下是否有该dtuid的
文件。

确认dtu与打印机之间连线是否正确。

Dtu与打印机的连线可以通过
COMWAY公司提供的无线串口软件进行测试。

4.若dsprint_apitest.aspx打印机可以正确打印,但是长时间得不到响应结果。


表明API的调用基本没有问题,有可能又一下几种原因:
1.用户在本地测试,没有将返回结果请求的http链接更改为测试链接,或者
公网访问不了本地的测试链接。

此错误情况待用户发布到公网的
空间后就不会存在了。

2.用户已经更改了receiveurl参数,且公网可以访问此链接,访问该链接显
示为OK。

则有可能从来没有调用过dsprint.class.cs里面的changeurl
函数,使得COMWAY云打印的服务器并没有同步更改为用户指定的
dsreceive.class.aspx链接。

,这样打印结果也就无法传到该页面进行处
理。

3.查询是否有log文件,包括dtulog文件和错误的log文件,若没有log文
件,则确认用户的空间是否允许创建文件。

3.JAVA API 接口
此API接口适合于JAVA架构的网站使用,编程语言为JAVA。

3.1接口包含文件
JAVA API接口主要包含lib库文件以及以下几个文件:
DsLog.java:API库的读写文件操作接口函数。

DsPrintSend.java: API库的主要函数,参数设置、文本打印、更改URL的接口。

MD5Ecnrypt.java: API库的md5算法的接口函数。

dsreceive.class.jsp:API库函数的接收数据处理,用户COMWAY服务器回传结果用。

测试参考代码文件:
apitest.java:用于测试库函数的接口,也用于更改URL。

index.jsp: 测试网页代码,参考范例。

printapi.jsp: 测试网页代码,参考范例。

3.2接口调用流程
1.搭建JAVA API环境
a.按照自己的环境需求,必须更改DsPrintSend.java文件里面的参数定义。

主要涉
及参数可以参考DsPrintSend.java代码注释。

b.更改apitest.java代码,测试是否可以正常打印。

c.网页、库及代码发布到JAVA空间后,调用apitest.java更改URL后,即可正常
使用API。

2.API使用
1.初始化库函数,参数可以不输入,为DsPrintSend.java里面设定的密码和appid。

DsPrintSend ds = new ("your_password", "your_appid");
或者:
DsPrintSend ds = new DsPrintSend();//DsPrintSend里设定的默认密码和appid
2.打印或者查询打印机状态函数printtxt,dtuid为必须指定的参数。

参数:dtuid, 指定打印的dtuid号
text, 需打印文本,若为空,则调用查询指令
timeout, 超时时间,默认是60s。

querycmd, 打印机查询状态指令,不同打印机可能不同,默认为
dsprint.class.cs里面设定的查询指令。

返回:打印机查询状态的指令返回的结果,为字符串,例如“00”=’\x00’
例如:
string re = ds.printtxt("your_dtuid", "中国abcdef");
或者查询打印机状态:
string re = ds.printtxt("your_dtuid");//DsPrintSend里设定的默认指令查询打印机
状态。

3.更改dsreceive.class.jsp的访问链接为DsPrintSend.java中设置的链接。

string re = ds.changeurl();
该函数将COMWAY云打印服务器数据库中对应用户的dsreceive的访问链接更改
为dsprint里面设置的receiveurl值。

COMWAY云打印服务器在初期分配客户appid时,默认将客户的dsreceive的
URL设置为:/dsreceive.class.php
一般客户在建站初期测试阶段可能有需求更改此设置为客户自己的网站空间链接。

更改后,只要此URL不变,则无需调用此函数。

3.API测试
将WebRoot里面的文件及库文件上传到服务器的JAVA空间,即可测试COMWAY云打印的库函数调用。

用户访问receiveurl里面设置的接收打印结果处理的URL,看是否能正常显示OK。

若没有问题,且公网也能访问该链接,用户调用changeurl函数,通知COMWAY云打印中心将打印结果的回传URL改为用户指定的URL。

服务器需要5分钟后,地址即生效,用户以后的打印结果将会回传到receiveurl指定的URL。

4.API错误解决
1.核实JAVA空间是否支持创建文件,且dtupath变量为保存文件的路径设置为绝
对路径。

2.若打印很快返回error,请核实appid以及密码是否正确,dsprint文件里面的参
数是否设置正确,dtuid是否在此账号下且已经正常上线。

开启错误输出功能,
设置errorlog=true后重试,查看dtulog/errlog.txt文件。

3.若打印较长时间返回error,请查看dtulog下是否有该dtuid的文件。

确认dtu
与打印机之间连线是否正确。

Dtu与打印机的连线可以通过COMWAY公司提供
的无线串口软件进行测试。

4.若打印机可以正确打印,但是长时间得不到响应结果。

则表明API的调用基本
没有问题,有可能又一下几种原因:
1.用户在本地测试,没有将返回结果请求的http链接更改为测试链接,或者
公网访问不了本地的测试链接。

此错误情况待用户发布到公网的JAVA空间
后就不会存在了。

2.用户已经更改了receiveurl参数,且公网可以访问此链接,访问该链接显
示为OK。

则有可能从来没有调用过DsPrintSend.java里面的changeurl
函数,使得COMWAY云打印的服务器并没有同步更改为用户指定的
dsreceive.class.jsp链接。

,这样打印结果也就无法传到该页面进行处
理。

用户可运行apitest.java,调用更改URL函数。

3.查询是否有log文件,包括dtulog文件和错误的log文件,若没有log文
件,则确认用户的JAVA空间是否允许创建文件。

4.API打印技巧使用说明
本API为了满足用户不同需求,提供完全自由化的打印模式,可以适配市面上所有的打印机。

但是针对不同的打印机,有不同的查询指令以及字体特效指令。

若用户所有的DTU 串口接的打印机均为统一品牌,可以在API的配置文件中设定统一的打印机查询指令。

若用户的DTU接的打印机各不相同,且查询指令也不相同,则需要用户将打印机查询指令和DTUID的对应关系写入数据库表格,以便对应不同的DTU提取相应的打印机查询指令。

针对各种打印机的下划线、放大字体、选择字体等特殊指令,建议用户更改API库文件,在对文字进行GBK转码后,再根据打印文本中的关键字替换为打印机的特效指令,避免因为指令的特殊字符造成转成GBK编码后出现乱码,达不到用户的要求。

例如:’__UNDERLINE_ON__’,’__UNDERLINE_OFF__’,’__BOLD_ON__’,’__BOLD_OFF__’,’_ _FONT_SONG_ON__’,’__FONT_SONG_OFF__’,在打印文本转成GBK编码后,对打印文本里面的关键字进行替换,替换为对应的打印机HEX码指令。

这样既能实现打印特效,又能保证打印文本中不出现打印指令而出现的转码错误。

相关文档
最新文档