项目急,先发个帖散分,一个打印问题,请大家帮忙看看!

tw829 2007-07-25 11:58:05
环境:打印机,映美FP-580K,82列平推票据打印机,客户刚买的!
   纸张,边带圆孔四联打印纸,宽22CM,长,15CM,每页均可即时撕   开.
要求:要能换页连续打印单据.例如,当前纸张一页最多打印14行,包括      标题,如超15行,则15连续打到下页,也要包括单据标题.
问题:打印时无法自动换页,而是一直打印下去,我想自定义纸,但该打印机设置   中没发现有自定义纸张功能.我算了下,现一页纸张刚好打印15       行,如何实现自动换页,请大家帮帮看看!
--------------

先放100分,不够再放分!

...全文
310 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tw829 2007-08-26
  • 打赏
  • 举报
回复
CSDN没人性,将我信誉分扣成这样...........
perneer 2007-07-29
  • 打赏
  • 举报
回复
可以在dw中的detail中增加一个自定义更如rowcnt
rowcnt = int(getrow()/15 ) +1 然后创建一个以rowcnt为更的group 组,

将要打打印的标题放在group 组中,将列放在detail中,这样就可以只打印15行就重新打印新的页了,当然页的长度你得手工调整,15可以定义一个变量,可以由程序传入,你想一页打多少行就打传入多少.
lzheng2001 2007-07-25
  • 打赏
  • 举报
回复
上面方法只是一些手工操作就能实现,基本不用写代码. 项目急的话用这个方法就好.
lzheng2001 2007-07-25
  • 打赏
  • 举报
回复
for win2000以上版本(不支持win98)
方法1:
1. for win2000,xp 以上版本,控制面板=>打印机=>文件菜单=>服务器属性=>"格式"标签页=>选中"创建新格式" ...

2.自定义后,选取打印机->属性->把纸张设置成刚才定义的

3.用printdatawindow 打印. 如果数据窗口使用默认的纸张(也就是默认与打印机设置的一致)的时候用 dw.print() 打印也一样
tw829 2007-07-25
  • 打赏
  • 举报
回复
大虾们,也得回答些问题嘛,实在不知道,顶也有分咋是!
----------------
我找了些这样的代码,但目前还没试通

long ll_job

ll_job = PrintOpen()
IF ll_job = -1 THEN
inv_msg.of_errorbox("打印失败, 打印机未准备好 , 请检查打印机是否设置正确。")
RETURN
END IF
if inv_msg.of_yesnobox( "确定要打印 ? Y / N " ) = 2 then
PrintClose( ll_job )
return
end if

PrintSend(ll_job, Char(27)+Char(64)) //初始化打印机

//定制行距1/8英寸
//PrintSend(ll_job, CHAR(27)+CHAR(48))
PrintSend(ll_job, Char(28)+Char(38))/*进入汉字模式*/
PrintSend(ll_job, Char(27)+Char(40)+Char(67)+Char(2)+Char(255)+Char(78)+Char(8),255) /*定义页长为15厘米*/
//设定页长20行
//PrintSend(ll_job, CHAR(27)+CHAR(67)+CHAR(20))
integer li_count

li_count = dw_main.rowcount( )
if mod(li_count , 20) = 0 then
//换页
printsend(ll_job,char(27)+char(12))
end if

PrintDataWindow( ll_job , dw_main )


PrintClose( ll_job )

---------------------


我想关键是这两行的问题
PrintSend(ll_job, Char(27)+Char(40)+Char(67)+Char(2)+Char(255)+Char(78)+Char(8),255) /*定义页长为15厘米*/
//设定页长20行
//PrintSend(ll_job, CHAR(27)+CHAR(67)+CHAR(20))

不知道这代码是不是跟打印机有关,对这些参数一时搞不清,我如果要换成15行,是不是将char(20)改成15就行了,若要将15CM改成16CM,那又如何改?
我现在问题对定义这些参数搞不太明白,谁能解决下,或者有其他好方法!


fa_ge 2007-07-25
  • 打赏
  • 举报
回复
接分
fa_ge 2007-07-25
  • 打赏
  • 举报
回复
再頂
fa_ge 2007-07-25
  • 打赏
  • 举报
回复
sf
lzheng2001 2007-07-25
  • 打赏
  • 举报
回复
你把纸张再定义得长一点不就行了吗?


或者看看这个退纸命令,好象第三个字符(~***) 可以控制长度. 具体我也没用过.
printsend(job,"~h1B~h4A~***")
tw829 2007-07-25
  • 打赏
  • 举报
回复
刚才自定义了纸张,但打印完了之后,纸老是多走出来一点,有什么方法让纸退回去一点吗?

多出这点对打印影响很大!
tw829 2007-07-25
  • 打赏
  • 举报
回复
比如像 退纸 N 厘米。
tw829 2007-07-25
  • 打赏
  • 举报
回复
to lzheng2001(1加1) :
你刚一说,我就解决了,刚才没时间来看帖.

以前是没找到自定义,当时糊涂了!

谁能说说代码控制!
zhangwenqian 2007-07-25
  • 打赏
  • 举报
回复
感觉设置一下打印机的纸张属性就可以搞定了

小安子 2007-07-25
  • 打赏
  • 举报
回复
学习,学习
v888 2007-07-25
  • 打赏
  • 举报
回复
需要打印的数据窗口设置好 ,在控制面板中自定义纸张格式并使用该格式。然后调整打印机,每种打印机的设置不相同,主要是要实现套打的功能。

然后dw_print()
OracleRoob 2007-07-25
  • 打赏
  • 举报
回复
打印机应该有自定义纸张设置

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧