Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [VB6] Print

  1. #1
    Utente di HTML.it L'avatar di Petra
    Registrato dal
    Apr 2005
    Messaggi
    224

    [VB6] Print

    ciao a tutti...spero che qualcuno possa darmi una mano.

    In pratica ho sviluppato un piccolo programma che mi consente di stampare dei preventivi. Come in ogni preventivo a fondo pagina ci sono le "Note". In queste "Note" c'è molto testo ed in foglio A4 non ci stanno se non vado a capo.

    Dato che utilizzo l'oggetto "print", qualkuno saprebbe indicarmi un modo per andare a capo ? ?

  2. #2
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    nn ho capito se x a capo intendi una nuova pagine, ma se le note sono molto lunghe stampa tutto su una pagina nuova.

    codice:
    Printer.NewPage

  3. #3
    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
    Chi non cerca trova.

  4. #4
    Utente di HTML.it L'avatar di Petra
    Registrato dal
    Apr 2005
    Messaggi
    224
    Grazie mille...proverò ad elaborare il codice...poi ti faccio sapere!!

  5. #5
    Utente di HTML.it L'avatar di Petra
    Registrato dal
    Apr 2005
    Messaggi
    224
    è perfetto come me l'hai postato...grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.