我想往已经印好的表格上套打文字,比如有些表格有备注一项,这样我把要填入备注的内容输入到Text1中,点击打印按钮后,Text1中输入的内容就通过打印机打印到备注一项的空白处.因为备注的内容往往很多而且需要换行,所以我就遇到了2个问题:
1.定位打印的换行问题:
Printer.PaperSize = vbPRPSA3
Printer.Orientation = vbPRORLandscape
Printer.CurrentX = 65
Printer.CurrentY = 44.5
Printer.Print Text1.Text
也就是想从(65,44.5)开始打印,期望的效果是:
备注: 111111111111
22222222222
3333333333
实际效果是:
备注: 111111111111
22222222222
3333333333
当然备注中的内容是随机的并非固定好的,请问该如何解决?
2.是关于向Text1中输入的问题.
现在我设置Text1.MultiLine=true
如何限定,Text1的每行最多只能输入18个汉字,且最多只能输入6行?总结一下就是:
把TEXT1内的内容按照TEXT1的格式,打印到固定的位置(当然TEXT1中的内容是随机的).
1.定位打印的换行问题:
Printer.PaperSize = vbPRPSA3
Printer.Orientation = vbPRORLandscape
Printer.CurrentX = 65
Printer.CurrentY = 44.5
Printer.Print Text1.Text
也就是想从(65,44.5)开始打印,期望的效果是:
备注: 111111111111
22222222222
3333333333
实际效果是:
备注: 111111111111
22222222222
3333333333
当然备注中的内容是随机的并非固定好的,请问该如何解决?
2.是关于向Text1中输入的问题.
现在我设置Text1.MultiLine=true
如何限定,Text1的每行最多只能输入18个汉字,且最多只能输入6行?总结一下就是:
把TEXT1内的内容按照TEXT1的格式,打印到固定的位置(当然TEXT1中的内容是随机的).
Printer.Orientation = vbPRORLandscape
Printer.CurrentY = 44.5
Dim sTemp() As String
Dim iLoop As Integer
sTemp = Split(Text1.Text, vbCrLf)
For iLoop = LBound(sTemp) To UBound(sTemp)
Printer.CurrentX = 65
Printer.Print sTemp(iLoop)
Next iLoop
现在我设置Text1.MultiLine=true
如何限定,Text1的每行最多只能输入18个汉字,且最多只能输入6行?
对于第二问,用两个计数变量,一个记录每行输入的汉字,一个记录输入的行数Dim sTemp() As String
Dim iLoop As Integer
sTemp = Split(Text1.Text, vbCrLf)
if UBound(sTemp) -LBound(stemp)>5 then
msgbox "text1文本超过6行"
endif
dui
还是不能超过36个字符(一个中文汉字=2个英文字符)
同样输入一定的行数后也不能继续输入.