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