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

VB.NET Discussion :

Impression et unités de mesure


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 46
    Par défaut Impression et unités de mesure
    Bonjour,

    Je suis en train de me débattre avec les impressions dans VB .Net, et je ne m'en sors pas...
    Quelqu'un qui a les idées claires à ce sujet pourrait-il m'aider sur les points suivants ?

    1. J'essaie d'obtenir la zone imprimable de l'imprimante choisie pour mon PrintDocument1.
    J'utilise donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PrintDocument1.PrinterSettings.DefaultPageSettings.PrintableArea.Left (right,top,bottom...)
    Ca me retourne des coordonnées en single. Quelle est l'unité ?

    2. Admettons que je veuille tracer un rectangle représentant cette zone imprimable.
    Je vais donc utiliser dans l'évènement PrintPage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim rect As New Rectangle(x,y,largeur,longueur)
    e.Graphics.DrawRectangle(Pens.Black, rect)
    Comment définir x, y, largeur et longueur pour que les unités correspondent à ce que m'a retourné le PrintableArea ?

    (note : j'ai consulté le très bon document http://bidou.developpez.com/tutoriel...et/impression/ mais il y a des choses qui m'échappent encore).

    Merci pour votre aide !

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 88
    Par défaut
    Salut,

    Pour ton 1°, C'est parce que ton PrintDocument1.PrinterSettings.DefaultPageSettings.PrintableArea te retourne un RectangleF. Je pense que l'unité est donc du pixel retourné en Single.
    Enfin, ça reste à confirmer, je te dis ça de mémoire.

    Donc, pour ton 2°, déclare un RectangleF pas un Rectangle.
    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
         Dim myRect As RectangleF
         With myRect
              .X = e.MarginBounds.X
              .Y = e.MarginBounds.Y
              .Width = e.MarginBounds.Width 
              .Height = e.MarginBounds.Height
         End With

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 46
    Par défaut
    Merci Lunelame

    J'ai essayé de passer en RectangleF, mais je n'ai pas trouvé la méthode pour le dessiner !
    e.Graphics.DrawRectangleF n'existe pas. (il y a bien Graphics.DrawRectangles, mais il lui faut un tableau de RectangleF, je vais éviter les complications...)

    Par contre, j'ai créé mon Rectangle avec les MarginsBounds et effectivement ça fonctionne.

    Par contre, nouveau problème :

    J'essaie de passer ma page en Paysage, dans une fonction exécutée avant le PrintPage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PrintDocument1.PrinterSettings.DefaultPageSettings.Landscape = True
    Mais lorsque le PrintPage est lancé, la page est en Portrait. Comment expliquer ça ?

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 88
    Par défaut
    Utilise :
    e.Graphics.DrawRectangle(oPen, Rectangle.Ceiling(myRect))

    @ +

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 46
    Par défaut
    OK,
    ... et pour mon problème d'orientation Paysage... une idée ?

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 88
    Par défaut
    Verifie cela :
    PrintDocument1.PrinterSettings.PageSettings.Landscape = True

    Fait le avant de lancer l'impression.
    Je ne suis pas sur que lorsque tu modifie le DefaultPageSettings les modification se répercute sur les PageSettings déjà créé.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 46
    Par défaut
    Heu... j'ai du être très méchant dans ma vie précédente, car je n'ai pas la propriété PrintDocument1.PrinterSettings.PageSettings

    Il ne me propose que DefaultPageSettings...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. unite de mesure de la page d'impression
    Par tatronic dans le forum C#
    Réponses: 1
    Dernier message: 20/01/2011, 04h28
  2. Réponses: 5
    Dernier message: 13/02/2007, 19h35
  3. Contenu SStab, comment avoir comme unité de mesure le pixel ?
    Par uranium-design dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/10/2006, 19h02
  4. [FPDF] unité de mesure utilisée par les documents pdf
    Par calitom dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 09/10/2006, 15h17
  5. Utiliser le nombre de caractères comme unité de mesure
    Par mmz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/05/2006, 12h52

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