Petit problème d'impression
Bonjour à tous,
Je suis un amateur cherchant à programmer pour le plaisir un petit traitement de texte lié à des mises en page automatisées pour éviter l'emploi de papier préimprimé.
A l'aide de l'objet graphics, j'ai donc programmé un papier à lettre incluant logo, adresse de société, date, références, ... Toute cette partie fonctionne très bien.
Je cherche donc à récupérer le contenu d'un textbox et à l'imprimer à un endroit précis de la feuille (x:30, y:420) en tenant compte du fait que ce contenu peut être volumineux.
J'ai bien récupéré le code fourni par Microsoft qui permet de mesurer la chaine pour l'imprimer en tenant compte des réglages de l'imprimante soit:
Code:
1 2 3 4 5 6
| Dim charactersOnPage As Integer = 0
Dim linesPerPage As Integer = 0
g.MeasureString(My.Settings.TexteCourant, F, e.MarginBounds.Size, StringFormat.GenericTypographic, charactersOnPage, linesPerPage)
g.DrawString(My.Settings.TexteCourant, F, Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic)
My.Settings.TexteCourant = My.Settings.TexteCourant.Substring(charactersOnPage) |
Lequel code fonctionne parfaitement mais, à priori, 1) sans me donner la possibilité de positionner le texte là où je le souhaite 2) sans me permettre de définir exactement le rectangle correspondant à la zone d'impresssion.
Il existe une difficulté supplémentaire: La mise en page des pages supplémentaires est différente de la mise en page de la première page: Les coordonnées XY et la taille du rectangle sont différentes.
Je chercherais également à justifier le texte, mais cela peut passer au second plan.
Je serais très reconnaissant si quelqu'un accedpterait de m'apporter un peu d'aide et de me faire bénéficier de son expérience.
Je vous remercie tous du fond du coeur
Fabrice