JetLibre
Messages postés5Date d'inscriptiondimanche 18 août 2013StatutMembreDernière intervention 1 juillet 2020
-
18 août 2013 à 12:00
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
18 août 2013 à 16:03
Bonjour
je veux imprimer de droite à gauche (en arabe) y a t'il une instruction ou une configuration à faire pour ce là.
voici mon code qui imprime de gauche à droite
Private Sub BtnImprimer_Click(sender As Object, e As EventArgs) Handles BtnImprimer.Click
Dim MiseEnPage As New PageSetupDialog
Dim MonDoc As New Printing.PrintDocument
With MiseEnPage
.Document = MonDoc
.AllowOrientation = False
.AllowPaper = False
.EnableMetric = True
.MinMargins = New Printing.Margins(0, 0, 0, 0)
'.ShowDialog(Me)
.Dispose()
End With
AddHandler MonDoc.PrintPage, AddressOf MonDoc_PrintPage
MonDoc.Print() ' Tu appels la fonction Print qui va appeler PrintPage
End Sub
Private Sub MonDoc_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
' C'est dans cette méthode qu'on imprime réellement.
Dim Police As New Font("Arial", 11)
Dim PoliceGras As New Font("Arial", 12, FontStyle.Bold)
Dim XPos, YPos As Single
Dim ChaineImpr As String
Using MyGraphics As Graphics = e.Graphics
'----------------------- Impression de l'image -------------------------------
'Dim Picture As New Bitmap(Me.PictureBox1.Image)
'MyGraphics.DrawImage(Picture, 2.0F * e.MarginBounds.Width / 3.0F, YPos)
'----------------------------------------------------------------------
Dim SautLigne As Single = MyGraphics.MeasureString("X", PoliceGras).Height
ChaineImpr = Me.TXTCIN.Text + " -- " + Me.TXTCNRPS.Text
MyGraphics.DrawString(ChaineImpr, PoliceGras, Brushes.Black, XPos , YPos)
YPos = YPos + SautLigne * 1.5F
ChaineImpr = Me.TXTPreNomPers.Text + "الإسم و اللقب : "
MyGraphics.DrawString(ChaineImpr, Police, Brushes.Black, XPos , YPos)
YPos = YPos + SautLigne * 1.5F
End Using
End Sub
Je développe sur VS2012 avec une base Access 2007
Pour ma form RightToLeft = Yes
RightToLeftLayout = True
Pour mes TextBox RightToLeft = Yes
Dans ma Form, j'ai 38 TextBox et 3 ComboBox que je les charge à partir des tables de ma base. Je veux imprimer des TextBox choisies (Pas Tous) mais l'impression se fait de gauche à droite au lieu de droite à gauche.
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 18 août 2013 à 13:50
Salut
ajoute dans ta sub mondoc_printpage
Dim Y_Alignment As New System.Drawing.StringFormat(StringFormatFlags.DirectionRightToLeft)
MyGraphics.DrawString(ChaineImpr, Police, Brushes.Black, XPos , YPos,Y_Alignment)
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 18 août 2013 à 16:03
normal
car ton XPos = 0
si tu veux imprimer de dr à gau il faut donner à xpos le right de ta
page
ajoute
Private ps As New PageSettings
et dans ta sub mondoc_printpage
XPos = ps.Bounds.Right
Using MyGraphics As Graphics = e.Graphics
tu peux ajouter un PrintPreviewDialog pour prévisualiser
dans ton btn_imprimer
Private Sub BtnImprimer_Click .......
Dim MonDoc As New Printing.PrintDocument
Dim ppd As New PrintPreviewDialog
ppd.Document = MonDoc
ppd.WindowState = FormWindowState.Maximized
'imprssion si ok
If ppd.ShowDialog = Windows.Forms.DialogResult.OK Then
ppd.Document.Print()
end if
et le reste