Il metodo Print di VB6 non è capace di mandare a capo il testo quando supera la larghezza della pagina, devi costruirti una funzione in grado di spezzare automaticamente il testo. Per sapere dove spezzare il testo utilizza la funzione TextWidth(txt) e confronta questa misura con la larghezza utile del tuo foglio (larghezza pagina meno i margini). Naturalmente sarebbe opportuno spezzare il testo in corrispondenza di particolari caratteri (spazio, punteggiatura ecc.) e questo non fa altro che complicare la cosa. Se vuoi una base di partenza guarda questo esempio:
codice:
Private Sub Command1_Click()
Printer.ScaleMode = vbMillimeters
Printer.CurrentY = 20
Call PrintWordWrap(Text1.Text, 10, 200)
Printer.EndDoc
End Sub
Public Sub PrintWordWrap(txt As String, left As Single, right As Single)
Dim out() As String
Dim i As Integer
out = Split(txt, " ")
Printer.CurrentX = left
For i = 0 To UBound(out)
If Printer.CurrentX + Printer.TextWidth(out(i)) > right Then
Printer.Print
Printer.CurrentX = left
End If
Printer.Print out(i) & " ";
Next
End Sub
I parametri della funzione sono il testo da stampare, il margine sinistro e quello destro. Questo codice l'ho buttato giù di corsa e va senz'altro perfezionato, ciao