print 设置字体,以及间距的问题

非凡软件 2008-03-05 11:50:59
现在有一个票据打印机,在已经印制好的固定票据上指定位置填充内容
想用print 来打印,但是现在麻烦的是,字体和大小如何设置 有做过的请指点呀
...全文
139 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cbm6666 2008-03-06
'给你一段我的代码示例

Private Sub printtk()
Printer.Font = "楷体_GB2312"
Printer.FontSize = 18
Printer.Print ""
Printer.Print ""
Printer.Print Space(10) & "浙江霸王衡器有限公司过磅单"
Printer.FontSize = 14
Printer.Print ""
Printer.Print "车牌号码:" & Trim(Labseq.Caption) & Space(10) & "日 期:" & Date$
Printer.Print "检测速度:" & "5km/h" & Space(14) & "时 间:" & Trim(Labtime.Caption)
Printer.Print "轴序号 轴 型 轮别 轴 重"


'*************** 打印机的其它纸张等属性常数设定 你高兴横着竖着打印随你选, 纸张大小随你设

Printer 对象常数

打印机颜色模式
常数 值 描述
vbPRCMMonochrome 1 单色输出
vbPRCMColor 2 彩色输出

双面打印
常数 值 描述
vbPRDPSimplex 1 单面打印
vbPRDPHorizontal 2 双面水平打印
vbPRDPVertical 3 双面垂直打印
'Printer.Orientation = vbPRORLandscape

打印方向
常数 值 描述
vbPRORPortrait 1 文档打印以纸的窄边作顶部
vbPRORLandscape 2 文档打印以纸的宽边作顶部

打印质量
常数 值 描述
vbPRPQDraft -1 草稿打印质量
vbPRPQLow -2 低级打印质量
vbPRPQMedium -3 中等打印质量
vbPRPQHigh -4 高级打印质量

PaperBin 属性
常数 值 描述
vbPRBNUpper 1 从上层纸盒进纸
vbPRBNLower 2 从下层纸盒进纸
vbPRBNMiddle 3 从中间纸盒进纸
vbPRBNManual 4 等待手动插入每页纸
vbPRBNEnvelope 5 从信封进纸器进纸
vbPRBNEnvManual 6 从信封进纸器进纸;但要等待手动插入
vbPRBNAuto 7 (缺省方式)从当前缺省纸盒进纸
vbPRBNTractor 8 从拖拉进纸器供纸
vbPRBNSmallFmt 9 从小型进纸器进纸
vbPRBNLargeFmt 10 从大型纸盒进纸
vbPRBNLargeCapacity 11 从大容量进纸器进纸
vbPRBNCassette 14 从附加的卡式纸盒进纸

PaperSize 属性
常数 值 描述
vbPRPSLetter 1 信笺, 8 1/2 x 11 英寸
vbPRPSLetterSmall 2 +A611 小型信笺, 8 1/2 x 11 英寸
vbPRPSTabloid 3 小型报, 11 x 17 英寸
vbPRPSLedger 4 分类帐, 17 x 11 英寸
vbPRPSLegal 5 法律文件, 8 1/2 x 14 英寸
vbPRPSStatement 6 声明书,5 1/2 x 8 1/2 英寸
vbPRPSExecutive 7 行政文件,7 1/2 x 10 1/2 英寸
vbPRPSA3 8 A3, 297 x 420 mm
vbPRPSA4 9 A4, 210 x 297 mm
vbPRPSA4Small 10 A4小号, 210 x 297 mm
vbPRPSA5 11 A5, 148 x 210 mm
vbPRPSB4 12 B4, 250 x 354 mm
vbPRPSB5 13 B5, 182 x 257 mm
vbPRPSFolio 14 对开本, 8 1/2 x 13 英寸
vbPRPSQuarto 15 四开本, 215 x 275 mm
vbPRPS1&H14 16 10 x 14 英寸
vbPRPS11x17 17 11 x 17 英寸
vbPRPSNote 18 便条,8 1/2 x 11 英寸
vbPRPSEnv9 19 #9 信封, 3 7/8 x 8 7/8 英寸
vbPRPSEnv10 20 #10 信封, 4 1/8 x 9 1/2 英寸
vbPRPSEnv11 21 #11 信封, 4 1/2 x 10 3/8 英寸
vbPRPSEnv12 22 #12 信封, 4 1/2 x 11 英寸
vbPRPSEnv14 23 #14 信封, 5 x 11 1/2 英寸
vbPRPSCSheet 24 C 尺寸工作单
vbPRPSDSheet 25 D 尺寸工作单
vbPRPSESheet 26 E 尺寸工作单
vbPRPSEnvDL 27 DL 型信封, 110 x 220 mm
vbPRPSEnvC3 29 C3 型信封, 324 x 458 mm
vbPRPSEnvC4 30 C4 型信封, 229 x 324 mm
vbPRPSEnvC5 28 C5 型信封, 162 x 229 mm
vbPRPSEnvC6 31 C6 型信封, 114 x 162 mm
vbPRPSEnvC65 32 C65 型信封,114 x 229 mm
vbPRPSEnvB4 33 B4 型信封, 250 x 353 mm
vbPRPSEnvB5 34 B5 型信封,176 x 250 mm
vbPRPSEnvB6 35 B6 型信封, 176 x 125 mm
vbPRPSEnvItaly 36 信封, 110 x 230 mm
vbPRPSEnvMonarch 37 信封大王, 3 7/8 x 7 1/2 英寸
vbPRPSEnvPersonal 38 信封, 3 5/8 x 6 1/2 英寸
vbPRPSFanfoldUS 39 U.S. 标准复写簿, 14 7/8 x 11 英寸
vbPRPSFanfoldStdGerman 40 德国标准复写簿, 8 1/2 x 12 英寸
vbPRPSFanfoldLglGerman 41 德国法律复写簿, 8 1/2 x 13 英寸
vbPRPSUser 256 用户定义




回复
非凡软件 2008-03-06
用printer是不是必须驱动打印机呀,我的意思是如果不驱动打印机 直接只是用print可以吗?
回复
lcsfxs 2008-03-06
Dim j, n As Integer
ADOjna.MoveFirst
n = 0
Printer.Width = 13904 '' 13904
Printer.Height = 16836 '' 3800
Printer.Orientation = 1

With ADOjna
If MsgBox("请检查打印机是否接电与装纸,开始打印吗?", _
vbYesNo + vbQuestion) = vbYes Then

Do Until .EOF


n = n + 1
If n Mod 25 = 1 Then


nLeft = lcsleft
nTop = lcstop
Printer.Line (lcsleft - 200, lcstop + 1000)-(lcsleft + 10500, lcstop + 1000)
Printer.Line (lcsleft + 1000, lcstop + 1300)-(lcsleft + 1900, lcstop + 1300)
Printer.Line (lcsleft + 3300, lcstop + 1300)-(lcsleft + 9100, lcstop + 1300)
' Printer.Line (lcsleft - 200, lcstop + 2650)-(lcsleft + 10500, lcstop + 2650)

' Printer.Line (lcsleft - 200, lcstop + 1000)-(lcsleft - 200, lcstop + 10650)
' Printer.Line (lcsleft + 150, lcstop + 1000)-(lcsleft + 150, lcstop + 10650)
' Printer.Line (lcsleft + 1000, lcstop + 1000)-(lcsleft + 1000, lcstop + 10650)
' Printer.Line (lcsleft + 1400, lcstop + 1300)-(lcsleft + 1400, lcstop + 10650)
' Printer.Line (lcsleft + 1900, lcstop + 1000)-(lcsleft + 1900, lcstop + 10650)
' Printer.Line (lcsleft + 2700, lcstop + 1000)-(lcsleft + 2700, lcstop + 10650) '客户名称
' Printer.Line (lcsleft + 3300, lcstop + 1000)-(lcsleft + 3300, lcstop + 10650)
' Printer.Line (lcsleft + 4100, lcstop + 1300)-(lcsleft + 4100, lcstop + 10650) '是否按约定时间上门服务
' Printer.Line (lcsleft + 4900, lcstop + 1300)-(lcsleft + 4900, lcstop + 10650)
' Printer.Line (lcsleft + 5700, lcstop + 1300)-(lcsleft + 5700, lcstop + 10650) '是否携带两布一套
' Printer.Line (lcsleft + 6500, lcstop + 1300)-(lcsleft + 6500, lcstop + 10650)
' Printer.Line (lcsleft + 7100, lcstop + 1300)-(lcsleft + 7100, lcstop + 10650) '是否进行业务推介
' Printer.Line (lcsleft + 7700, lcstop + 1300)-(lcsleft + 7700, lcstop + 10650)
' Printer.Line (lcsleft + 8300, lcstop + 1300)-(lcsleft + 8300, lcstop + 10650)
' Printer.Line (lcsleft + 9100, lcstop + 1000)-(lcsleft + 9100, lcstop + 10650)
' Printer.Line (lcsleft + 10500, lcstop + 1000)-(lcsleft + 10500, lcstop + 10650)


Printer.Font.Size = 18
Printer.Font.Bold = True
Printer.CurrentX = nLeft + 2500
Printer.CurrentY = nTop - 500
Printer.Print "网通客户障碍维护回访记录系统"

Printer.Font.Size = 14
Printer.Font.Bold = True
Printer.CurrentX = nLeft + 2800
Printer.CurrentY = nTop + 200
Printer.Print Format(DTPicker1(0).Value, "yyyy年mm月dd日") & " 到"
Printer.CurrentX = nLeft + 5400
Printer.CurrentY = nTop + 200
Printer.Print Format(DTPicker1(1).Value, "yyyy年mm月dd日")

Printer.Font.Size = 10
Printer.Font.Bold = False
Printer.CurrentX = nLeft + 3000
Printer.CurrentY = nTop + 600
Printer.Print "√ 是或满意 × 否或不满意"

Printer.CurrentX = nLeft - 100
Printer.CurrentY = nTop + 1400
Printer.Print "序"
Printer.CurrentX = nLeft - 100
Printer.CurrentY = nTop + 1800
Printer.Print "号"

Printer.CurrentX = nLeft + 250
Printer.CurrentY = nTop + 1400
Printer.Print "日期"
Printer.CurrentX = nLeft + 250
Printer.CurrentY = nTop + 1800
Printer.Print "月/日"

Printer.CurrentX = nLeft + 1050
Printer.CurrentY = nTop + 1050
Printer.Print "业务种类"

Printer.CurrentX = nLeft + 1100
Printer.CurrentY = nTop + 1400
Printer.Print "固"
Printer.CurrentX = nLeft + 1100
Printer.CurrentY = nTop + 1800
Printer.Print "话"

Printer.CurrentX = nLeft + 1500
Printer.CurrentY = nTop + 1400
Printer.Print "宽"
Printer.CurrentX = nLeft + 1500
Printer.CurrentY = nTop + 1800
Printer.Print "带"

Printer.CurrentX = nLeft + 2000
Printer.CurrentY = nTop + 1400
Printer.Print "电话"
Printer.CurrentX = nLeft + 2000
Printer.CurrentY = nTop + 1800
Printer.Print "号码"

Printer.CurrentX = nLeft + 2800
Printer.CurrentY = nTop + 1400
Printer.Print "客户"
Printer.CurrentX = nLeft + 2800
Printer.CurrentY = nTop + 1800
Printer.Print "名称"
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2008-03-05 11:50
社区公告
暂无公告