如果要很自由的话,不能用VB自己的东西,假如针对一种型号的打印机,你可以使用该打印机厂商提供的PCL(打印控制语言)来控制
HP和Cannon都提供,我原来用过
HP和Cannon都提供,我原来用过
解决方案 »
- 拜托谁能帮我写一下代码(不难的),有分数奖励.
- 请问在DAO怎么使用用Round函数?
- datalist和datacombo如何用代码关联呀?
- 请问LISTBOX控件如何获得我所选择的项目的值(显示出的字符串)
- 老是搞不定,愿意给500元给搞定的人:怎样写软件实现自动拨10个手机号码,把打通的和不通的分别保存起来?(vb实现最好)
- 关于CodeSmart版本的问题请教,为什么2009的没有3.51版本的代码库(CodeSmart)啊
- 谁人能告诉我!在VB中怎样用Picture Box或者其他的方法将来一张图片保存为不同的分辨率?
- 将计算结果,用柱状图表示出来 如何实现
- 怎样用VB读进一个ASP页面,并列出各种tag的层次结构
- 如何从Unicode获取字体文件中的映射关系
- 再问两个MSFlexGrid的问题:
- 用vb向oracle数据库插入数据时,好像死机了?!
当时就能精确控制在打印机上绘图和打印机状态,所以我保证这条渠道你一定能走通,不过,你需要找相应的PCL资料,然后使用print方式向打印机发送指令。
你可以这样:
Open "LPT1:" For Output As #1
print #1, Chr$(27) + "E"; Chr$(27) + "%0B";
不过这样做出来的程序针对性太强,不太灵活。
我用的是松下1121打印机,PCL指令中退纸是ESC "j" n,其中n代表n/180英寸为距离退纸一行,可是这个n如何再PRINT #1中表示呢,救救我啊!!!
大哥您不是难为我吗,我VB都一年多没用过了,该忘的都忘光了:(
你等等,别着急,我装个VB给你看看,但愿能解决:)
If Index = 1 Then
Printer.Orientation = vbPRORPortrait Open "LPT1:" For Output As #1
Print #1, Chr$(27); "E"; Chr(&H1B); Chr(&H26); "l"; "1"; "O"
Close #1
PrinterSetting.PrintDirection = 纵向 Else
Printer.Orientation = vbPRORLandscape
Open "LPT1:" For Output As #1
Print #1, Chr$(27); "E"; Chr(&H1B); Chr(&H26); "r"; "0"; "F"
Close #1
PrinterSetting.PrintDirection = 横向
End If
好像指令之间要用;分隔吧,你再试一试,祝你顺利!
还有一个方案,你找一本HP的打印机的说明书,看看它的PCL中横纵控制的指令,然后参照我的那段程序,应该没什么问题:)
LF,ESC J, ESC C ,ESC CO, FF, ESC N,
ESC O,ESC B,VT, ESC Q, ESC 1,ESC D,
...........
打印改变控制码: SO,DC 4 ,ESC W, SL, DC 2 ,ESC E, ESC F,
ESC E, ESC F ,ESC G,ESC H, ESC W,
............请问如何用如上代码作控制?
Print #1, Chr$(27); "B";
这样行吗??
退纸可以这样 print #1,chr$(27)+chr$(106)+chr$(n)
这里的n只能从30~129还有255,其他都是进一行纸,我的实际问题已经可以通过上面的操作解决,可是如果n=245就不能写成chr$(245),只能通过几个N相加。不明白为什么。
我的环境是W2K,VB6 SP5松下1121打印机,连续纸
我跟你的问题差不多,我现在用你的那个
print #1,chr$(27)+chr$(106)+chr$(255)是可以退纸(不知道退了多少)
但是相应的进纸命令我就不知道了只能找你救命了