PB9.0.3 Build 8836,SQL2000,XP,PB自定义纸张问题
原 PB9.0,Windows2000 程序,打印机LQ1600K,自定义纸张 代码如下
dw_2.Object.DataWindow.Print.CustomPage.Length = 71
dw_2.Object.DataWindow.Print.CustomPage.Width = 390
dw_2.Object.Datawindow.Print.Paper.Size = 256
dw_2.print(true)
打印正常
先在的系统换成了XP,打印机LQ1600KIII+,LQ1600KIIIH,LQ1900KII+,程序PB9.0.3 Build 8836编译
打印不正常,现象是使用了系统默认的纸型,PB中自定义的纸张类型没生效。
网上查了下,自定义字形的写法是
dw_2.Object.DataWindow.Print.CustomPage.Length = "71"
dw_2.Object.DataWindow.Print.CustomPage.Width = "390"
dw_2.Object.Datawindow.Print.Paper.Size = "256"
两种写法我都试验了,都是不成功。
所要的效果如图(原来是可以的):
------解决方案--------------------
long ll_job
ll_job = printopen()
if ll_job = -1 then
messagebox("提示","打印机未准备好")
return
end if
//定制行距1/8英寸 1/8英寸 = 0.125 英寸 = 1.875 毫米
PrintSend(ll_job, CHAR(27)+CHAR(48))
//设定页长= 1/8 英寸 * 15 = 1.875 英寸
PrintSend(ll_job, CHAR(27)+CHAR(67)+CHAR(15))
//因为 1 英寸 = 25.4 毫米 ,所以最终的纸长是:
//= 1.875 英寸 * 25.4 = 47.625 毫米
//必须使用printdatawindow,这样才能利用刚才设置的打印控制码
printdatawindow(ll_job,dw_print)
printclose(ll_job)
试试这个吧!
------解决方案--------------------
LQ1600KIII+,LQ1600KIIIH,LQ1900KII+ 换用老的LQ1600K驱动