Traitée Imprimer un formulaire au format paysage

  • mercredi 11 juillet 2012 15:52
     
      A du code

    Je souhaite imprimer un graphique placé sur un formulaire dont les dimensions sont : largeur 1500 px, hauteur 800 px.

    Voici le code que j'utilise :

    Dim pf As New PrintForm
            pf.Form = Me
            pf.Print()

    Le formulaire est imprimé immédiatement, mais en format portrait, et donc fortement coupé à droite.

    Comment puis-je améliorer la situation (format paysage et réglage des marges)

    D'avance, merci.


    Pierre Allemand

Toutes les réponses

  • mercredi 11 juillet 2012 17:53
     
     Traitée
    Bonjour Pierre Allemand,
    Le 11/07/2012 17:52, Pierre Allemand a écrit :
    > Je souhaite imprimer un graphique placé sur un formulaire dont les
    > dimensions sont : largeur 1500 px, hauteur 800 px.
    >
    > Voici le code que j'utilise :
    >
    > Dim pf As New PrintForm
    >          pf.Form = Me
    >          pf.Print()
    >
    > Le formulaire est imprimé immédiatement, mais en format portrait, et
    > donc fortement coupé à droite.
    >
    > Comment puis-je améliorer la situation (format paysage et réglage des
    > marges)
    >
     
    Si tu utilises les Powerpacks :
       pf.PrinterSettings.DefaultPageSettings.Landscape = True
     
    pour les marges, par exemple :
            With pf.PrinterSettings.DefaultPageSettings.Margins
                .Top = 10
                .Left = 10
                .Bottom = 10
                .Right = 10
            End With
     

    Cordialement, Jacques
  • mercredi 11 juillet 2012 21:27
     
     

    Merci Jacques

    Tout fonctionne (ou presque) : Mon graphique ne tient pas en largeur dans la page. 

    Comment puis-je faire pour réduire l'image à imprimer de façon à ce que tout le formulaire tienne en largeur sur ma page imprimée (A4) ?


    Pierre Allemand

  • jeudi 12 juillet 2012 11:36
     
     
    Le 11/07/2012 23:27, Pierre Allemand a écrit :
    > Merci Jacques
    >
    > Tout fonctionne (ou presque) : Mon graphique ne tient pas en largeur
    > dans la page.
    >
    > Comment puis-je faire pour réduire l'image à imprimer de façon à ce que
    > tout le formulaire tienne en largeur sur ma page imprimée (A4) ?
    >
     
    Il faudrait en savoir plus, quel contrôle utilise le graphique ?
    Y a t-il d'autre contrôles sur la feuille ? est il utile de les imprimer.
     
    D'après ce que je comprends, il faudrait quelque chose du genre
    'FitToPage' ?
     
    Mais je crains que PrintForm ne gère pas celà.
     
     

    Cordialement, Jacques
  • jeudi 12 juillet 2012 15:49
     
     
    Le 11/07/2012 23:27, Pierre Allemand a écrit :
    > Merci Jacques
    >
    > Tout fonctionne (ou presque) : Mon graphique ne tient pas en largeur
    > dans la page.
    >
    > Comment puis-je faire pour réduire l'image à imprimer de façon à ce que
    > tout le formulaire tienne en largeur sur ma page imprimée (A4) ?
    >
     
    Il faudrait en savoir plus, quel contrôle utilise le graphique ?
    Y a t-il d'autre contrôles sur la feuille ? est il utile de les imprimer.
     
    D'après ce que je comprends, il faudrait quelque chose du genre
    'FitToPage' ?
     
    Mais je crains que PrintForm ne gère pas celà.
     
     

    Cordialement, Jacques

    Le graphique n'utilise aucun contrôle spécifique. Il y a d'autres contrôles sur la feuille qui sont des résultats de calculs. Ils sont tous situés dans un rectangle de 200 x 650 px à droite du graphique. Il serait utile qu'ils fassent partie des objets imprimés.

    Enfin, il y a un menu situé en haut du formulaire et qui comprend uniquement 2 commandes (sortir et imprimer). Il n'est pas utile de les imprimer.

    Cordialement


    Pierre Allemand

  • jeudi 12 juillet 2012 16:55
     
     Traitée

    Malheureusement, il est bien indiqué dans PrintForm

    Si la largeur d'un formulaire est supérieure à la largeur du papier dans l'imprimante, le côté droit du formulaire peut être tronqué. Lorsque vous concevez des formulaires destinés à l'impression, assurez-vous que le formulaire est ajusté à du papier de taille standard.

    Donc avec PrintForm, à moins de réorganiser/redimensionner, je ne vois pas trop.

    Sinon, mais sans garanti de résultat sur la qualité, utiliser StretchBlt que tu pourrai intégrer à un code comme indiqué dans ce fil (non testé) : How do i print a form

    Ne pas oublier que la résolution d'imprimante en dpi est très nettement supérieure à celle d'un écran, et que le ratio largeur / hauteur n'est pas le même. Si tu réduit la résolution, par exemple passer de 300dpi à 150dpi (si c'est possible) la qualité d'impression s'en ressentira.

    L'impression, à moins d'utiliser des contrôles tiers, n'a jamais été un point fort de VB, Net ou antérieur.


    Cordialement, Jacques

  • jeudi 12 juillet 2012 22:29
     
     

    Bonsoir,

    J'ai résolu le problème en diminuant la largeur de mon graphique à l'écran.

    Cordialement


    Pierre Allemand

  • vendredi 13 juillet 2012 14:02
     
     
    C'était effectivement le plus simple  et le plus rapide, je crois.

    Cordialement, Jacques