Logiciels - Impression avec Gambas - Imprimer une textarea -

Impression avec Gambas - Imprimer une textarea

( Temps de lecture estimé à 1 min 20 sec )




IMPRIMER LE CONTENU D 'UNE TEXTAREA


Imprimer une TextArea


Réalisé par taoteblues


Vous avez la possibilité d 'utiliser le code basique suivant:


Public Sub Button_Click()

Draw.Begin(Printer)
Draw.Text(TextArea1.Text, 200, 200, Printer.With, Printer.Height)
Draw.End

End


ou le code suivant qui permet d 'imprimer le contenu d 'une TextArea en tenant compte des limites de la page, de ne pas couper de mot, de faire un retour à la ligne et de continuer l 'impression sur les pages suivantes.


PUBLIC SUB Button_Click()


DIM Ileft AS Integer

DIM IRight AS Integer

DIM ITop AS Integer

DIM IBot AS Integer

DIM textaimprimer AS String

DIM ITextposY AS Integer

DIM ITextPosX AS Integer

DIM ITextposX1 AS Integer

DIM Txtligne AS String

DIM Nextword AS String

DIM IprinterIwidth AS Integer

DIM IprinterIheight AS Integer


Printer.Size = A4


ILeft = 200

IRight = 800

ITop = 200

IBot = 200

IprinterIheight = Printer.Height - ITop - IBot - 400

IprinterIwidth = Printer.Width - ILeft - IRight



' nous découpons le texte à chaque saut de ligne

ITextPosX = 200

ITextposY = 100


'début d 'impression

Draw.Begin(Printer)


textaimprimer = TextArea1.Text

FOR EACH Txtligne IN Split(textaimprimer, n )


'Réglages personnels des bordures et de la taille des caractères


ITextPosX = 200

ITextposY = ITextposY + Draw.TextHeight( TaotE )


Draw.ForeColor = Color.Black

Draw.Font.Bold = FALSE

Draw.Font.Italic = FALSE

Draw.Font.Underline = FALSE

Draw.Font.Size = 10



' nous découpons chaque ligne en mots


FOR EACH NextWord IN Split(TxtLigne, )


IF ITextposY >= IprinterIheight THEN

ITextposY = 100

Printer.NewPage

ENDIF

'si la longueur du mot trop grande


ITextposX1 = ITextposX + Draw.TextWidth(NextWord & )

IF ITextPosX1 >= IprinterIwidth THEN

ITextPosX = 200

ITextposY = ITextposY + Draw.TextHeight( TaoteBlueS )

ENDIF

' nous passons le mot à l 'impression

Draw.Text(NextWord & , ILeft + ITextPosX, ITop + ITextposY)

ITextposX = ITextposX + Draw.TextWidth(NextWord & )

NEXT


NEXT


Draw.End

END





);



Date de creation :
Redacteur : Rédigé par spheris
Classé dans : Logiciels