Accueil > Forum > > > > Mise en page PrintDocument VB.NET
Mise en page PrintDocument VB.NET
jeudi 20 mars 2008 à 18:25:23 |
Mise en page PrintDocument VB.NET

antoineraymond
|
Bonjour Dans une de mes applications, j'ai besoin d'imprimer automatiquement les exceptions. Voici une partie du code que j'utilise: Dim WithEvents m_prdImprime As Printing.PrintDocument Dim m_sbrMsg As System.Text.StringBuilder PublicConst CrLf2 AsString = vbCrLf & vbCrLfPrivate Sub mprdImprime_PrintPage(ByVal sender AsObject, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles m_prdImprime.PrintPage e.Graphics.DrawString(m_sbrMsg.ToString, New Font("Courier New", 8), Brushes.Black, 50, 50) EndSubPrivate Sub PrintErreur(ByVal ErreurAs Exception) m_sbrMsg = New System.Text.StringBuilder
With m_sbrMsg .Append("Application : " & Application.ProductName & vbCrLf) .Append("Version : " & Application.ProductVersion & vbCrLf) .Append("Utilisateur : " & System.Security.Principal.WindowsIdentity.GetCurrent.Name & vbCrLf) .Append("Date : " & Now() & CrLf2 & vbCrLf) .Append("Message : " & Erreur.Message & CrLf2) .Append("Source : " & Erreur.Source & CrLf2 & vbCrLf) .Append(CrLf2 & Erreur.ToString) .Append(CrLf2) EndWith
Dim m_prdImprime AsNew Printing.PrintDocument m_prdImprime.DefaultPageSettings.Landscape = False m_prdImprime.Print()EndSubLe problème est que la partie Erreur.ToString est trop large pour la page. À la place de changer de ligne à l'impression, le texte est tout simplement coupé. J'aimerais savoir si il y a une façon de forcer le changement de ligne du texte trop long selon les dimensions de la page ou si vous avez une autre solution? Merci
Antoine
|
|
mardi 25 mars 2008 à 14:18:13 |
Re : Mise en page PrintDocument VB.NET
|
mercredi 28 juillet 2010 à 16:45:38 |
Re : Mise en page PrintDocument VB.NET

imajneb
|
Salut,
Voici un exemple de code qui analyse le texte mot par mot afin de faire un retour a la ligne si le texte sort de la page:
'//Dessine le texte multiligne
Private Sub DrawStringMultiLine(ByVal MyTxt As String,ByVal Left As short, ByVal Top As short, ByVal g As Graphics)
Dim Xmax As Integer = Form1.PageSetupDialog1.PageSettings.PaperSize.Width - Form1.PageSetupDialog1.PageSettings.Margins.Right()
Dim Text_size As SizeF
Dim i As Integer, Tab() As String
Dim Font As System.Drawing.Font = New Font("Arial", 10, FontStyle.Bold)
Dim X As Single = Left, Spacing As Single = 1.5 'Intervale entre deux lignes
Dim YShift As Single = 0 'Décalage sur Y des lignes
Dim drawFormat As New StringFormat
drawFormat.Alignment = 0
drawFormat.Trimming = StringTrimming.Character
drawFormat.FormatFlags = StringFormatFlags.LineLimit
drawFormat.Trimming = StringTrimming.Word
'Si la chaine est trop longue, multiligne
If g.MeasureString(MyTxt, Font).Width + X - Xmax >= 0 Then
'Met la ligne dans un tableau séparé par des espaces
Tab = MyTxt.Split(" ")
MyTxt = Tab(0)
For i = 1 To UBound(Tab) 'On ajoute les mots un par un en messurant
'On messure la chaine de caractere
Text_size = g.MeasureString(MyTxt & " " & Tab(i), Font)
If Text_size.Width + X - Xmax >= 0 Then 'Si rentre pas, on dessine la ligne
g.DrawString(MyTxt, Font, Brushes.Black, Left, Top + YShift, drawFormat )
YShift = YShift + Spacing
MyTxt = Tab(i)
Else
'on ajoute le mot
MyTxt = MyTxt & " " & Tab(i)
End If
Next
End If
'Dessine la derniere ligne avant de sortir
g.DrawString(MyTxt, Ctl.Font, Brushes.Black, Left, Top + YShift, drawFormat )
End Sub
|
|
Cette discussion est classée dans : page, vbcrlf, append, crlf2, prdimprime
Répondre à ce message
Sujets en rapport avec ce message
MAILTO et Outlook Expres [ par surfzoid ]
Bonjour a tous. Je developpe sous VB Express 2005 un soft qui doit me faire parvenir un mail pour une gestion de licence, j'ai donc opté pour le MAILT
Utilisation des modules Winsock By Akhenathon ! [ par tchicken ]
Bonjour à tous, J'essaie de télécharger des pages web sur le site paris-turf, j'utilise pour ça les modules Winsock développés par Akhenathon (www.my
Ouvrir un page web grâce un mot de passe - sans créer un base de données [ par ulysseriotmosse ]
Voilà je cherche à contrôler l'accés un page web par un mot de passe, pour différencier les clients professionnels et les particuliers sans me compliq
IIS6 et ASP.net (Framework 2) [ par Nexto ]
Bonsoir,Vu que le Framework 2.0.50727 est sorti il y a déjà un petit temps et que avant sur mon serveur j'étais encore avec le Framework BETA (serveur
asp appelé un autre page asp [ par sylbar84 ]
bonjour,J'ai beaucoup chercher et je n'arrive pas a trouvé comment utilisé call pour appeler une page asp qui me sert a compilé des stat sur un visite
Auto incrementation [ par bmikl59 ]
Voila, je crée une table dont la cle primaire doit s'incrementer de 1 a chaque nouvel enregistrement. Pour cela j'utilise la propriete dbAutoIncrField
Validation d'un formulaire à partir d'un autre formulaire [ par isame ]
slt à tous!! voilà je voudrais savoir s'il est possible de pouvoir valider un formulaire se trouvant sur une page (page1.php) à partir d'une autre pag
Validation d'un formulaire à partir d'un autre formulaire [ par isame ]
slt à tous!! voilà je voudrais savoir s'il est possible de pouvoir valider un formulaire se trouvant sur une page (page1.php) à partir d'une autre pag
Validation d'un formulaire à partir d'un autre formulaire [ par isame ]
slt à tous!! voilà je voudrais savoir s'il est possible de pouvoir valider un formulaire se trouvant sur une page (page1.php) à partir d'une autre pag
page acceuil [ par jesus_is_back ]
bonjour je suis oqp a faire un jeu de course(flash) mais je veu faire une page d'acceuil(avec des boutons : jouer,instructions,etc)merci de me répondr
Livres en rapport
|
Derniers Blogs
SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|