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 6 et antérieur Discussion :

Impression definir des zones spécifiques


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Impression definir des zones spécifiques
    Bonjour à tous,

    J'utilise depuis peut le contrôle Printer de VB6, et j'ai bien sur deja lu le tuto sur l'impression.

    Mon problème est que je voudrai definir des zones bien précises dans ma procédure d'impression. Je mexplique:

    Je voudrais imprimé le contenu d'un textbox (multilines) dans une zone de 90mm*30mm définie à 100mm du bord gauche de la page et à 50mm du bord haut de celle-ci ( un peut comme les enveloppes à fenêtres).

    (Donc une zone de texte a droite de ma page)

    Mon problème, c'est que j'imprime bien la première ligne à ces coordonnées, mais les suivantes sont retournées aux coordonnées de ma marge (tout à gauche).


    Voici mon code:

    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
    Private Sub Form_Load()
     
    Printer.TrackDefault = True
    Printer.ScaleMode = 6
    Printer.Orientation = 1
    Printer.PaperSize = 9
    Printer.PrintQuality = -2
    Printer.ColorMode = 1
    decalx = 20 - (Printer.Width - Printer.ScaleWidth) / 2
    decaly = 15 - (Printer.Height - Printer.ScaleHeight) / 2
     
    End Sub
     
     
     
    Private Sub Command1_Click()
     
    Printer.FontSize = 10
     
        Printer.CurrentX = 100
        Printer.CurrentY = 50
        Printer.Print A
     
        Printer.EndDoc
     
    End Sub
    Si quelqu'un pouvait me donné un coup de pouce ça serait super sympa, merci d'avance.

    @+

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    il faut repréciser le currentX après chaque appel à Print

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci de m'avoir répondu aussi vite.

    J'ai donc rapelé la commande "printer.currentx = 100" après "printer.print text1.text" mais rien à faire la 1ère ligne de ma textbox est imprimée à la bonne coordonnée mais les autres lignes sont imprimées à la marge par défaut (toute à gauche).

    Je suis vraiment perdu, comment faire?

  4. #4
    Membre actif Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Points : 239
    Points
    239
    Par défaut
    Bonjour,
    A mon avis cela vient du format de texte que tu recupere du textbox, comment l'imprimes tu ?
    Si tu l'envoie en seul bloc et qu'il contient des crlf, c'est "normal" de recommencer la ligne suivante au bord du document.
    Je pense que la solution est de récuperer son contenu dans une chaine, de la redecouper en plusieurs lignes (soit suivant les CRLF s'il y en a, soit suivant la longueur) et d'imprimer chaque ligne en repetant avant le currentx.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci pour tes explications.

    En fait, oui cela vient de ma textbox multilines qui contient de crlf (d'ailleur ça veut dire quoi exactement crlf ?).
    D'après le tuto d'impression il faudrais que je découpe la chaine de caractères.

    J'ai exploité le code fournie dans le tuto mais je vois pas comment appelé la fonction? De plus l'orsque j'execute vb me dit qu'il ya des erreurs.


    Pourrais tu m'expliqué comment faire, merci d'avance.

  6. #6
    Membre actif Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Points : 239
    Points
    239
    Par défaut
    Bonjour,
    CR :
    en Anglais Carriage Return
    en francais retour chariot
    cad on se place au debut de la ligne
    Code ascii: 13 (0D en hexa)
    LF :
    En anglais Line Feed
    en Francais retour à la ligne
    cad on passe à la ligne suivante
    Code ascii: 10 (0A en hexa)

    dans les anciennes versions de Vb, en gros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TQ la chaine de recherche n'est pas vide et que l'on trouve quelquechose
       recherche de la position des caracteres (instr) dans le chaine de recherche
       si on le trouve ( >0), 
          on recupere la chaine (mid)
          on la stocke dans un tableau redimentionné
          on racourcit la chaine de recherche d'autant
       sinon 
          la chaine de recherche est la derniere ligne
          on la stocke dans un tableau redimentionné
    Faire
    A partir de vb6, il y a une fonction split.
    Sur le code Asciihttp://www-clips.imag.fr/commun/bern...C/node137.html

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    je te remercie pour tes idications.

    Et donc je te relance sur mon probleme, comment puis-je faire pour imprimer mon texte dans une zone bien précise?
    N'est-il pas possible de definir une zone x,y qui debute à x,y de la page, dans laquelle doit etre imprimé mon texte, en dehors de cette zone le texte n'est pas imprimé ?

    Ou bien , la seule solution est-elle de découper ma chaine de caractères ?

    Merci d'avance.
    @ bientôt !

  8. #8
    Membre actif Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Points : 239
    Points
    239
    Par défaut
    Bonjour,
    c'est surement possible, mais je ne sais pas comment (a voir en jouant avec les propriété du documents ???);
    L'intérêt de l'objet printer, c'est de piloter au plus pret l'imprimante, rien ne t'empeche de coder une surcouche qui gere cela.
    par exemple, j'ai codé une classe qui gerer les entetes et les pieds pages, avec gestion des pages et repetitions des infos que je voulais avoir en debut du style répéter l'entete d'un tableau à chaque nouvelle page.

    sinon, as tu regarder du coté de l'ocx de cristal report, je crois que c'est compris dans vb, cela permet de faire un "formulaire".

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    (re)Bonjour,

    C'est quasiment ce que je veux faire, une sorte d'en-tête qui se place à une coordonnée spécifique. Je me creuse les meninges la dessus ...

    Sinon, parle moi un peut de cet ocx.

    @+

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    ou puis je me procuré crysstal report ?

  11. #11
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Info là:

    http://www.businessobjects.com/solutions/crystalreports/default.asp
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. colorier des zones spécifiques d'un cadre
    Par terminator01 dans le forum Word
    Réponses: 1
    Dernier message: 10/06/2015, 13h07
  2. Réponses: 0
    Dernier message: 31/01/2009, 14h29
  3. [CS3] definir une zone d'impression
    Par bcd_30 dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 29/01/2008, 14h06
  4. definir la zone d'impression
    Par adilissimo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/05/2007, 14h59
  5. [VBA-E]Definir une zone d'impression
    Par byflo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/06/2006, 09h29

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