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

MFC Discussion :

taille de la feuille d'impression


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 57
    Par défaut taille de la feuille d'impression
    Bonjour,

    Quelqu'un sait il comment est calculé la taille du rectangle imprimable dans la structure CPrintInfo ...
    Dans la fonction onprepareprinting cette taille est enorme 100000 et dans onprint elle est de 3500

    En effet j'aimerai savoir ca pour calculer le nombre de pages que j'ai à imprimer
    Pour le moment je le calcule dans la fonction onprepareprinting par rapport au nombre d'element de ma liste, la taille du caractere utilisé et la hauteur imprimable ...
    En ce qui concerne la hauteur imprimable, je suis obligé de mettre la valeur en dur ce qui n'est pas bien car elle varie en fonction des imprimantes a ce que j'ai compris ...
    Si quelqu'un pouvait m'aider ...
    A bientot

    Stephane

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    vaste sujet le pb des impressions!
    tu peux recuperer la taille du peripherique avec la fonction GetDeviceCaps (voir doc pour les autres possibilites).
    tu peux mettre la taille dans la structure de cette maniere:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    pPrintInfo->m_rectDraw.SetRect(0, 0,
    				pdcPrint->GetDeviceCaps(HORZRES),
    				pdcPrint->GetDeviceCaps(VERTRES));
    pdcPrint->DPtoLP(&m_pPrintInfo->m_rectDraw);
    POINT	ptmargins;
    pdcPrint->Escape(GETPRINTINGOFFSET, 0, NULL, &ptmargins);
    pPrintInfo pointeur sur un objet CPrintInfo
    pdcPrint pointeur sur le dc d'edition .
    la taille varie surement tout depend de la resolution de l'imprimante.
    pour tes calculs de fontes c'est cette taille en pixels que tu devras utiliser.
    autre point les marges d'imprimantes ne sont pas les memes il faut en tenir compte dans tes calculs d'affichages voir derniere ligne de l'extrait de code .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 57
    Par défaut
    En fait ce calcul de page j'aimerai le faire dans la fonction onprepareprinting mais malheureusement dans cette fonction il n'y a pas de pointeur sur le dc de l'imprimante...
    A ce que j'ai compris c l'instruction doprepareprinting qui fixe la taille de la feuille ...
    Si t'as une autre idée ca m'arrangerait
    Merci pour ton aide

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 57
    Par défaut
    En effet j'ai besoin de la taille de la feuille pour calculer le nombre de pages
    J'essaye dans onbeginprinting mais ca me donne jamais le meme chiffre, je comprends plus rien

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 57
    Par défaut
    Youpi ca fonctionne !!!!!!
    Le bout de code que tu m'a mis est nickel !!
    Je te remercie!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 116
    Par défaut
    Peux-tu me montrer le code que tu as utilisé pour imprimer ca m'intéresse.

    Merci Léa

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 57
    Par défaut
    Que veux tu savoir la maniere dont tu imprimes sur la feuille ou la maniere dont tu initialises l'impression...
    Je ne t'envoies pas le code directement mais je peux t'aider et te donner des ficelles si tu veux ...

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

Discussions similaires

  1. Taille de la feuille
    Par cortex59 dans le forum Visio
    Réponses: 1
    Dernier message: 30/07/2008, 14h41
  2. Bloquer la position d'un bouton sur une feuille à l'impression
    Par benpinta dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/10/2007, 16h59
  3. Limiter la taille d'une feuille Excel
    Par Bourezak dans le forum Excel
    Réponses: 2
    Dernier message: 10/03/2007, 21h30
  4. feuille pour impression
    Par Shaÿna dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 06/06/2005, 16h21
  5. Comment modifier la taille de la page d'impression ?
    Par edam dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2005, 15h51

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