Changer d'imprimante

jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014 - 24 nov. 2014 à 10:41
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 24 nov. 2014 à 21:16
Bonjour,

J'ai beau tout retourner, je n'y arrive pas.

Je souhaiterais imprimer sur une ticketteuse Epson (en USB), alors que mon imprimante par défaut est une HP (sous réseau.

J'utilise pourtant :
Imports System.IO
Imports System.Math
Imports System.Text.RegularExpressions
Imports System.Drawing
Imports System.Drawing.Text
Imports System.Drawing.Image
Imports System.Drawing.Printing
Imports System.Drawing.Printing.PrinterSettings


Le nom repris dans les imprimantes de windows est
"EPSON TM-T88IV ReceiptE4".
Pouvez-vous m'aider à sortir de mon bourbier ?
D'avance, un immense merci.

Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim printer As String = "EPSON TM-T88IV ReceiptE4"
        PrintDocument1.PrinterSettings.PrinterName = printer

        Dim fontCAP As PrivateFontCollection = New PrivateFontCollection
        fontCAP.AddFontFile(locfichier10 & "code128.ttf")
        Dim fontEAN As New Font(fontCAP.Families(0), 60, FontStyle.Regular)
        Dim font01 = New Font("Arial", 10)

        rtbTicket.Text = "Bonjour"

        e.Graphics.DrawString(rtbTicket.Text, font01, Brushes.Black, 0, 25)
        e.Graphics.DrawString(rtbTicket.Text, fontEAN, Brushes.Black, 0, 55)
    End Sub


jyd

13 réponses

jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 11:09
Je viens d'avoir la preuve que mon nom d'imprimante est bien le bon !

Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim printer As String = "EPSON TM-T88IV ReceiptE4"
        PrintDocument1.PrinterSettings.PrinterName = printer

        Dim pkInstalledPrinters As String
        For i As Integer = 0 To PrinterSettings.InstalledPrinters.Count - 1
            pkInstalledPrinters = PrinterSettings.InstalledPrinters.Item(i)
            If pkInstalledPrinters = printer Then
                MsgBox("ok")
            End If
        Next i

        Dim fontCAP As PrivateFontCollection = New PrivateFontCollection
        fontCAP.AddFontFile(locfichier10 & "code128.ttf")
        Dim fontEAN As New Font(fontCAP.Families(0), 60, FontStyle.Regular)
        Dim font01 = New Font("Arial", 10)

        rtbTicket.Text = "Bonjour"

        e.Graphics.DrawString(rtbTicket.Text, font01, Brushes.Black, 0, 25)
        e.Graphics.DrawString(rtbTicket.Text, fontEAN, Brushes.Black, 0, 55)
    End Sub


jyd
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 11:40
Par contre si je change l'imprimante par défaut depuis le panneau de configuration windows, tout s'imprime bien...
Oui mais voilà..
je ne veux pas le faire depuis windows.

Avez-vous (rien que) une petite idée svp ?

jyd
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 nov. 2014 à 12:50
Bonjour,
Excuse-moi de ne rien connaître de VB.Net.
Je m'intéresserais toutefois (pur instinct) à ceci :
http://msdn.microsoft.com/fr-fr/library/system.drawing.printing.printersettings%28v=vs.110%29.aspx
et plus particulièrement à la propriété PrinterName de cette claee PinterSettings.
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 14:11
Je crois que j'ai exactement fait cela dans mon code. Y voyez-vous autre chose à rajouter dans mon code ?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
24 nov. 2014 à 13:53
Bonjour,

Nécessite une listBox:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'affiche les imprimantes
        Dim printers As System.Drawing.Printing.PrinterSettings.StringCollection
        printers = System.Drawing.Printing.PrinterSettings.InstalledPrinters()
        For x As Integer = 0 To printers.Count - 1
            ListBox1.Items.Add(printers(x))
        Next
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'sélectionne l'imprimante par défaut 
        Dim net As Object
        net = CreateObject("WScript.Network")
        net.SetDefaultPrinter(ListBox1.SelectedItem)
    End Sub


Voilà
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 14:15
Je me permets de repréciser mon post. Je ne souhaite pas intégrer de liste des imprimantes. Je souhaite juste imprimer sur l'imprimante appelée "EPSON TM-T88IV ReceiptE4" (qui n'est pas mon imprimante par défaut et qui n'est pas non plus en réseau mais uniquement en USB). C'est tout simplement ce que je souhaiterais faire.
Mais cela ne veut ps imprimer sur cette imprimante (qui figure bien dans la liste des imprimantes disponibles) su le poste de travail.
Merci d'avance pour votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
24 nov. 2014 à 14:35
Essaie ceci:


 Dim net As Object
        net = CreateObject("WScript.Network")
        net.SetDefaultPrinter("EPSON TM-T88IV ReceiptE4")

0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 14:45
Bien essayé ! Mais cela n'imprime toujours pas sur l'imprimante en usb (Epson), mais sur l'imprimante par défaut en réseau (HP)... Grr
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 14:53
Je précise ce qui se passe...
L'imprimante par défaut devient pourtant bien l'EPSON, mais cela s'imprime toutefois sur la HP (c-a-d. la mai-uvaise imprimante !)...
As-tu une idée ?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137 > jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 15:04
Je pense qu'il faut aller voir dans le Panneau de configuration dans Imprimante après avoir fait ton code quelle imprimante est cochée
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 15:32
Comme je viens de te dire, l'imprimante par défaut a bien changé. (l'epson est bien passée en par défaut), mais cela imprime toujours sur l'autre imprimante (qui n'est pourtant plus par défaut). Je viens aussi de mettre à jour mon code dans le dernier post
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
Modifié par jytest le 24/11/2014 à 14:57
A cet instant, l'imprimante par défaut est celle en USB,
mais cela continue à imprimer sur l'autre...

Voici mon code mis à jour :
Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim printer As String = "EPSON TM-T88IV ReceiptE4"
        Dim net As Object
        net = CreateObject("WScript.Network")
        net.SetDefaultPrinter("EPSON TM-T88IV ReceiptE4")

        Dim fontCAP As PrivateFontCollection = New PrivateFontCollection
        fontCAP.AddFontFile(locfichier10 & "code128.ttf")
        Dim fontEAN As New Font(fontCAP.Families(0), 60, FontStyle.Regular)
        Dim font01 = New Font("Arial", 10)

        rtbTicket.Text = "Bonjour"

        e.Graphics.DrawString(rtbTicket.Text, font01, Brushes.Black, 0, 25)
        e.Graphics.DrawString(rtbTicket.Text, fontEAN, Brushes.Black, 0, 55)
    End Sub
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
24 nov. 2014 à 17:43
Bonjour
à mettre
Option explicit ON et Option strict on

Peut etre ainsi

Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
PrintDocument1.PrinterSettings.PrinterName = "EPSON TM-T88IV ReceiptE4"
Dim fontCAP As PrivateFontCollection = New PrivateFontCollection
fontCAP.AddFontFile(locfichier10 & "code128.ttf")
Dim fontEAN As New Font(fontCAP.Families(0), 60, FontStyle.Regular)
Dim font01 = New Font("Arial", 10)
rtbTicket.Text = "Bonjour"
e.Graphics.DrawString(rtbTicket.Text, font01, Brushes.Black, 0, 25)
e.Graphics.DrawString(rtbTicket.Text, fontEAN, Brushes.Black, 0, 55)

End Sub
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 18:11
Ton bout de code ne fait plus passer epson en défaut. Et n'imprime toujours pas sur l'epson...
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 17:49
Merci pour ta proposition.
Mais où met-on
"Option explicit ON" et "Option strict on" ?

jyd
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 24/11/2014 à 18:04
il faut aller dans project -> properties -> compile
et cocher Option explicit ON" et "Option strict on"

cela n'a pas à voir directement avec ta question juste une bonne
habitude pour coder correctement
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 18:12
Je prends note de ta remarque... Merci.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 nov. 2014 à 18:15
Question toute bête. Ton imprimante est-elle elle-même sous réseau ? Elle doit l'être elle-même, si tu veux l'utiliser alors que les autres sont sous réseau.
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
Modifié par jytest le 24/11/2014 à 18:32
Non, la ticketteuse n'est pas sous réseau.
Par contre, l'autre l'est bien, sous réseau.
Elle ne peut être branchée au pc qu'en USB.

Bizarre ce que tu me dis, parce que je la choisis "manuellement" par défaut dans les "périphériques et imprimantes", tout fonctionne nickel (...en USB). Bizarre !
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
24 nov. 2014 à 19:27
question
où as tu écris le code pour ordonner d'imprimer ?
PrintDocument1.print
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
24 nov. 2014 à 20:55
e.Graphics.DrawString(rtbTicket.Text, font01, Brushes.Black, 0, 25)
e.Graphics.DrawString(rtbTicket.Text, fontEAN, Brushes.Black, 0, 55)
à la fin du bloc.

Tu vois ?
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
24 nov. 2014 à 21:16
non je ne vois pas
0
Rejoignez-nous