我想往已经印好的表格上套打文字,比如有些表格有备注一项,这样我把要填入备注的内容输入到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.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
      

  2.   

    继续等>>>>>>>>>>>>>>>>2.是关于向Text1中输入的问题.
      现在我设置Text1.MultiLine=true
      如何限定,Text1的每行最多只能输入18个汉字,且最多只能输入6行?
      

  3.   

    第一问jadeluo(秀峰)已解答,
    对于第二问,用两个计数变量,一个记录每行输入的汉字,一个记录输入的行数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
      

  4.   

    对于你说的Text1的每行最多只能输入18个汉字,是指一行可以输入多个字符(包含英文字符),
    还是不能超过36个字符(一个中文汉字=2个英文字符)
      

  5.   

    像zhujing281(Swordhero) 说的  自己做判断就好啊........
      

  6.   

    那么如何使Text1中的内容,每行输入到一定字符数后自动换行或者不能继续输入?
    同样输入一定的行数后也不能继续输入.