Imprimer contenue de richtextbox

cs_ludwig89 Messages postés 47 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 18 septembre 2009 - 4 oct. 2004 à 11:38
cs_CHETA Messages postés 15 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 24 août 2009 - 5 oct. 2004 à 09:16
bonjour
bon je reedite la question que j'ai deja posé mais apres mes multiple tentative je suis arrivé a la conclusion que j'etait dans la m-----
donc voila

1) j'ai une imprimante configuré par defaut en paysage
2) je ne veux pas changer la config de mon imprimante
3)je veux imprimer le coontenu d'un richtextbox en mode portrait
4) je veux que cette impression ce fasse autiomatiquement sans passer par .schowprinter
5) j'utilise l'imprimante defini par defaut dans les parametres windows

j'ai tenté

With dlgCommonDialog
.CancelError = True
.Flags = cdlPDReturnDC + cdlPDNoPageNums
.Flags = .Flags + cdlPDAllPages
.Orientation = cdlPortrait

If Err <> MSComDlg.cdlCancel Then
Printer.Print ""
.ShowPrinter

frmMain.RichTextBox1.SelStart = 0
frmMain.RichTextBox1.SelLength = Len(frmMain.RichTextBox1.Text)
frmMain.RichTextBox1.SelPrint (dlgCommonDialog.hDC)

End If
End With

la propriété orientation change bien de 2 a 1 mais phisiquement sur le papier c'est toujours en paysages

jai tenté

With dlgCommonDialog
.CancelError = True
.Flags = cdlPDReturnDC + cdlPDNoPageNums
.Flags = .Flags + cdlPDAllPages
printer.Orientation = cdlPortrait

If Err <> MSComDlg.cdlCancel Then
Printer.Print ""
.ShowPrinter

frmMain.RichTextBox1.SelStart = 0
frmMain.RichTextBox1.SelLength = Len(frmMain.RichTextBox1.Text)
frmMain.RichTextBox1.SelPrint (dlgCommonDialog.hDC)

End If
End With

mais vb6 me dit que la propriété printer.orientation ne peu etre defini dans une page ou qqchose du genre

que faire ?????????????

a priori c le dernier bug de mon appli ;-)

1 réponse

cs_CHETA Messages postés 15 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 24 août 2009
5 oct. 2004 à 09:16
8-)
Salut
Voilà une fonction qui permet d'imprimer une richtextbox
tu appelles la fonction comme ceci:

ePrint RichTextBox1.Text, 155, 35, vbBlack, 5, vbMillimeters

Voici la fonction à écrire:

Public Function ePrint(st As String, posX As Integer, posY As Integer, Couleur As OLE_COLOR, EcartLigne As Integer, ScaleMd As ScaleModeConstants)
Dim Str() As String, i As Integer 'Declaration de variables ( array )
Printer.ForeColor = Couleur
Printer.ScaleMode = ScaleMd

Str = Split(RichTextBox1.Text, vbCrLf) ' Découpe le texte et place dans un array
For i = 0 To UBound(Str) ' petite boucle pour imprimmer chaque ligne
amp Str(i), posX, posY + i * EcartLigne 'Imprimme avec l'ecart de chaque ligne
Next i ' Repete jusqu'a ce qu'il ny'a plus rien a imprimmer
End Function

Quelques parametres à mettre éventuellement avant l'appel de la fonction:

Printer.TrackDefault = True
Printer.ScaleMode = 6
Printer.Orientation = vbPRORLandscape
Printer.PaperSize = 9
Printer.PrintQuality = -4
Printer.ColorMode = 2
Printer.FontSize = 10

Scalemode est important dans la mesure où j'utilise vbmillimeters dans la fonction

Voilà j'utilise cette fonction sans probléme(qui n'est pas de moi ,merci à son auteur)

bon courage
0
Rejoignez-nous