Option ExplicitPublic Const PHYSICALWIDTH = 110 Public Const PHYSICALHEIGHT = 111 Public Const PHYSICALOFFSETX = 112 Public Const PHYSICALOFFSETY = 113Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long Public PhysWidth As Single, PhysHeight As Single '纸张宽,高度 Public PrintWidth As Single, PrintHeight As Single '可列印宽,高度 Public TopMargin As Single, BottomMargin As Single '上,下边界 Public LeftMargin As Single, RightMargin As Single '左,右边界Public nCopy As Integer '列印份数 Public nRows As Integer '排列行数 Public nCols As Integer '排列列数 Public nRowSpace As Long '行距 Public nColSpace As Long '列距 Public nLeftSpace As Long '左边距 Public nTopSpace As Long '上边距 Public StrPrint As String '需列印的字符 Public xObj As Object Public Sub ShowPrinter() 'GetDeviceCaps 回传值的单位是 pixels Printer.ScaleMode = 1 'vbPixels '像素 '计算部份 PhysWidth = GetDeviceCaps(Printer.hDC, PHYSICALWIDTH) '纸张实际宽度 PhysHeight = GetDeviceCaps(Printer.hDC, PHYSICALHEIGHT) '纸张实际高度 PrintWidth = Printer.ScaleWidth '可列印范围宽度 PrintHeight = Printer.ScaleHeight '可列印范围高度 LeftMargin = GetDeviceCaps(Printer.hDC, PHYSICALOFFSETX) '左边界 RightMargin = PhysWidth - (LeftMargin + PrintWidth) '右边界 TopMargin = GetDeviceCaps(Printer.hDC, PHYSICALOFFSETY) '上边界 BottomMargin = PhysHeight - (TopMargin + PrintHeight) '下边界End Sub 把以上放入一模块中设置好打印属性后再调用ShowPrinter函数
object 对象表达式,其值是“应用于”列表中的一个对象。
value 一个用来指定纸张大小的值或常数,“设置值”中有详细描述。
设置值value 的设置值是:常数 值 描述
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 毫米
vbPRPSA4 9 A4, 210 x 297 毫米
vbPRPSA4Small 10 A4小号, 210 x 297 毫米
vbPRPSA5 11 A5, 148 x 210 毫米
vbPRPSB4 12 B4, 250 x 354 毫米
vbPRPSB5 13 B5, 182 x 257 毫米
vbPRPSFolio 14 对开本, 8 1/2 x 13 英寸。
vbPRPSQuarto 15 四开本, 215 x 275 毫米。
vbPRPS10x14 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 毫米
vbPRPSEnvC3 29 C3 型信封, 324 x 458 毫米
vbPRPSEnvC4 30 C4 型信封, 229 x 324 毫米
vbPRPSEnvC5 28 C5 型信封, 162 x 229 毫米
vbPRPSEnvC6 31 C6 型信封, 114 x 162 毫米
vbPRPSEnvC65 32 C65 型信封,114 x 229 毫米
vbPRPSEnvB4 33 B4 型信封, 250 x 353 毫米
vbPRPSEnvB5 34 B5 型信封,176 x 250 毫米
vbPRPSEnvB6 35 B6 型信封, 176 x 125 毫米
vbPRPSEnvItaly 36 信封, 110 x 230 毫米
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 用户定义
说明这些常数在 Visual Basic (VB) 中的对象浏览器中的对象库中列出。
打印机 Height 和 Width 属性的设置自动地将 PaperSize 设置为 vbPRPSUser。注意 Printer 对象此属性的效果依赖于打印机厂家提供的驱动程序。某些属性设置值可能不起作用,或者一些不同的属性设置值可能有相同的效果。接受范围之外的设置值可能产生也可能不产生错误。详细信息,请参阅厂家具体驱动程序的文档。
http://www.egooglet.com论坛
http://bbs.j2soft.cn
Public Const PHYSICALHEIGHT = 111
Public Const PHYSICALOFFSETX = 112
Public Const PHYSICALOFFSETY = 113Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, ByVal nIndex As Long) As Long
Public PhysWidth As Single, PhysHeight As Single '纸张宽,高度
Public PrintWidth As Single, PrintHeight As Single '可列印宽,高度
Public TopMargin As Single, BottomMargin As Single '上,下边界
Public LeftMargin As Single, RightMargin As Single '左,右边界Public nCopy As Integer '列印份数
Public nRows As Integer '排列行数
Public nCols As Integer '排列列数
Public nRowSpace As Long '行距
Public nColSpace As Long '列距
Public nLeftSpace As Long '左边距
Public nTopSpace As Long '上边距
Public StrPrint As String '需列印的字符
Public xObj As Object
Public Sub ShowPrinter()
'GetDeviceCaps 回传值的单位是 pixels
Printer.ScaleMode = 1 'vbPixels '像素
'计算部份
PhysWidth = GetDeviceCaps(Printer.hDC, PHYSICALWIDTH) '纸张实际宽度
PhysHeight = GetDeviceCaps(Printer.hDC, PHYSICALHEIGHT) '纸张实际高度
PrintWidth = Printer.ScaleWidth '可列印范围宽度
PrintHeight = Printer.ScaleHeight '可列印范围高度
LeftMargin = GetDeviceCaps(Printer.hDC, PHYSICALOFFSETX) '左边界
RightMargin = PhysWidth - (LeftMargin + PrintWidth) '右边界
TopMargin = GetDeviceCaps(Printer.hDC, PHYSICALOFFSETY) '上边界
BottomMargin = PhysHeight - (TopMargin + PrintHeight) '下边界End Sub
把以上放入一模块中设置好打印属性后再调用ShowPrinter函数