IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

PrintDocument et qualité d'impression ?


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut PrintDocument et qualité d'impression ?
    Bonjour,

    Apres pas mal de tests et des heures de recherche, sans vraiment rien trouver de concluant, je n'arrive pas à définir la qualité d'impression que l'imprimante doit utiliser.

    Ci-dessous, mon code. Désolé c'est en chantier, mais j'ai laissé tel quel afin que l'on puisse voir ce que j'ai essayé.
    NB : ce qui est en commentaire ne fonctionne pas ou n'a aucun effet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
        Private Sub Btn_Print_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Print.Click
     
            'PrintDocument.DefaultPageSettings.PrinterResolution.Kind = Printing.PrinterResolutionKind.Low 'myPrintQuality
            'PrintDocument.DefaultPageSettings.PrinterResolution.Kind = System.Drawing.Printing.PrinterResolutionKind.Draft
            'PrintDocument.DefaultPageSettings.PrinterResolution.Kind = Printing.PrinterResolutionKind.Draft 'myPrintQuality
     
            'Options des qualités d'impressions disponibles avec l'imprimante
            Dim printQuality As New List(Of Object)
            For i = 0 To PrintDocument.PrinterSettings.PrinterResolutions.Count - 1
                printQuality.Add(PrintDocument.PrinterSettings.PrinterResolutions.Item(i)) '0=High ; 1=Medium ; 2=Low ; 3=Draft
            Next
     
            'PrintDialog.ShowDialog()
            'PrintDocument.PrinterSettings.PrinterResol()
     
            PrintDocument.Print()
            PrintDocument.Dispose()
     
     
            'For i = 0 To ar.Document.Printer.PrinterSettings.PrinterResolutions.Count - 1
            '    If ar.Document.Printer.PrinterSettings.PrinterResolutions(i).Kind = System.Drawing.Printing.PrinterResolutionKind.Draft Then
            '        ar.Document.Printer.DefaultPageSettings.PrinterResolution = ar.Document.Printer.PrinterSettings.PrinterResolutions(i)
            '    End If
            'Next
     
        End Sub
     
        Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage
     
            'e.PageSettings.PrinterResolution.Kind = Printing.PrinterResolutionKind.Draft
            'e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighSpeed
            e.Graphics.PageUnit = GraphicsUnit.Millimeter
            e.Graphics.DrawImageUnscaled(Image.FromFile(mySoft_folder & "\TempForPrint.jpg"), 8, 10)
        End Sub
    Si j'utilise un PrintDialog, la qualité choisie est bien prise en compte lors de la sortie d'impression, mais pas autrement. Evidement, je ne souhaite pas utiliser ce controle

    Merci pour votre aide !

  2. #2
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut
    Aucune idée ? Je cherche toujours...

  3. #3
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut
    libre à vous de me donner un coup main...

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Dim printQuality As New List(Of Object)
            For i = 0 To PrintDocument.PrinterSettings.PrinterResolutions.Count - 1
                printQuality.Add(PrintDocument.PrinterSettings.PrinterResolutions.Item(i)) '0=High ; 1=Medium ; 2=Low ; 3=Draft
            Next
    ca sert à quoi ca? tu remplis une liste et tu ne l'utilises nulle part



    sinon effectivement le code qui aurait dû marcher, serait de placer ceci juste avant d'appeler Print()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     'PrintDocument.DefaultPageSettings.PrinterResolution.Kind = Printing.PrinterResolutionKind.Draft 'myPrintQuality
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  5. #5
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut
    J'ai fais tellements d'essais, que j'ai du affacer la ligne où j'utilise la liste.


    J'aimerais bien reussir à résoudre ce problème sans utiliser la boite de dialogue de l'impression, car le but de ce petit prog est d'être le plus simple possible.

    Merci qd m d'avoir jetté un oeil.

  6. #6
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut
    Je ne sais pas si cela a son importance, mais le fichier que je souhaite imprimer est une image au format JPG.

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    cela ne devrait pas avoir d'importance, normalement, cela change simplement les DPI de l'impression (il me semble)

    par contre, faut être sûr que la résolution de l'image d'origine est grande car si c'est agrandi, ca sera forcément pas beau
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  8. #8
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut
    La résolution de l'image est de 300 ppi. Il s'agit en fait d'une planche contact, crée avec mon logiciel, sous photoshop. L'utilisateur modifie un premier document qui est copié dans le press-papiers, puis collé dans un nombre de calques déterminés par l'utilisateur vers le deuxième documents. Qd l'utilisateur décide d'imprimer son travail, le deuxième document est enregistré via la bibliothèque de photoshop au format JPG (standard). Enfin, le logiciel se charge d'imprimer ce document. J'aurais pu passer par photoshop pour l'impression, mais l'utilisateur aurais du utiliser sa boite de dialogue. 300ppi, ça fait déja pas mal, mais j'ai besoin d'une grande précision concernant le positionnement des calques.

    C'est franchement pénible cette histoire. Je n'ai même pas de message d'erreur. L'impression s'effectue correctement, mais en qualité "normale", alors que j'essaie d'obtenir la qualité "brouillon" pour mes testes.

  9. #9
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut
    Je viens d'essayer à nouveau l'objet "Printer" de VB6 pour imprimer un JPG cette fois. Même résultat qu'avec un PDF. La qualité n'est pas prise en compte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim pr As New Printer
            pr.DocumentName = mySoftName & " : PlancheContact " & mySoft_PSDname.Substring(mySoft_PSDname.LastIndexOf("("), 7)
            pr.PrintQuality = vbPRPQDraft
            pr.PaintPicture(Image.FromFile(mySoft_folder & "\TempForPrint.jpg"), 0, 0)
            pr.EndDoc()
    Je peter un cable

  10. #10
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    c'est pas ton imprimante le problème?
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  11. #11
    Membre confirmé Avatar de arnofly
    Homme Profil pro
    Développeur Web / Webdesigner
    Inscrit en
    Mai 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web / Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 411
    Points : 465
    Points
    465
    Par défaut
    Slt LG ! (on a le droit ?) je plaisante Louis-Guillaume
    C'est sympa de suivre mon ptit problème

    Effectivement, ça doit être l'imprimante qui est la cause de tous mes tracas. D'apres ce que j'ai lu cet apres'm les drivers EPSON seraient "incompatibles". Vu que tu m'en parles, ça me conforte dans l'idée. Si c'est vraiment ça, et bien... merci EPSON pour tout le temps perdu et pour la qualité de vos drivers !!!

    Du coup, j'ai laissé tomber, parce que ça fait trop de temps que je bataille là dessus. J'ai modifié mon programme en remplaçant "Impression standard" et "Impression haute qualité" par "impression rapide" qui n'utilise pas "PrintDialog" (qualité sandard par défaut) et "impression avancée" qui l'utilise

    Encore merci pour tes conseils.


    NB : je ne mets pas résolu

Discussions similaires

  1. Qualité d'impression sur Graphics
    Par Papy214 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 02/09/2009, 15h59
  2. Qualité d'impression sans pilotes postscript
    Par ourson84 dans le forum Débuter
    Réponses: 0
    Dernier message: 19/07/2008, 13h08
  3. Problème de qualité d'impression PDF
    Par MarcVB6 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 02/03/2007, 01h52
  4. Améliorer la qualité d'impression d'une form
    Par akabane dans le forum Delphi
    Réponses: 2
    Dernier message: 08/07/2006, 13h31
  5. Modification de la qualité d'impression
    Par Eusebius dans le forum Matériel
    Réponses: 1
    Dernier message: 06/06/2006, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo