PowerBuilder文摘
首页 | 原创 | 译文 | 转载 | 源码 | 工具 | 灌水 | 全部 | PB助手 | 相册 | 留言 | 登陆 | 注册
Pb中定制打印页长
2006年7月12日10:52星期三  [转载]

---- 在使用连续纸打印数据窗口的情况下,需要定制打印的页长,以保证打印机走纸正确,不用人工干预,实现连续打印。在PB中须调用外部函数来自定义纸张长度,比较繁琐。本文介绍一种直接对打印机的控制方法,简单实现对页长的设定。


---- 一、 预备知识


---- 计算机与打印机的通讯使用ASCII码进行,其中标准ASCII码包括可打印字符及非打印字符(控制码),打印机使用控制码来定制打印机。大多数打印机指令使用控制码escape作为其指令序列的第一个序列码。下面介绍本文用到的几个指令码序列:


设置换行量(行距)1/8 英寸
ASCII码 ESC 0
十进制码 27 48


设置以行为单位的页长
ASCII码 ESC C n


十进制码 27 67 n
其中n 为每页行数范围(1-127)

---- 二、 PB中控制码的传送及定制页长的实现


---- 在PB中通过函数Printsend(printjobnumber,string,{ zerochar })来实现向打印机发送控制码。各参数定义如下:


printjobnumber: 由printjob()函数返回的打印作业号;
string:         控制字符串,使用ASCII码;
zerochar:       用来替代string中的数字0;

---- 由于字符串中,0终止字符串,如果string 中包含0,则需利用其他字符来表示0,参数zerochar即为此用途而设,当PB发送控制字符串给打印机时,把替代的字符zerochar转化为0。


---- 下面是具体的完成定制页长打印数据窗口的程序(定制页长为2.75英寸):


long ll_job
dw_print.reset()
ll_job = printopen()
if ll_job = -1 then
messagebox(gs_title,"打印机未准备好")
return
end if
//定制行距1/8英寸
PrintSend(ll_job, CHAR(27)+CHAR(48))
//设定页长22行
PrintSend(ll_job, CHAR(27)+CHAR(67)+CHAR(22))
printdatawindow(ll_job,dw_print)
printclose(ll_job)
摘自: http://www.cnread.net/cnread1/dnwl/cxsj/pb/syjq/014.htm

字体:
Posted by tigerchamp | 评论(4) | 阅读1769次
high quality backlin在 2014年7月19日03:51星期六 评论:
VKGVsE Very neat blog post. Keep writing.

cost of cialis在 2012年11月10日00:27星期六 评论:
lucha se han alistado no solo la medicina,

cxjmgup在 2006年9月12日21:50星期二 评论:
,ұμϲʶIJ542476157

ngybhap在 2006年8月30日22:32星期三 评论:
,λ515831144

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



提交时自动将内容复制到剪贴板