Apperçu avant impression

Résolu
Signaler
Messages postés
7
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
29 décembre 2005
-
Messages postés
7
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
29 décembre 2005
-
Hello,

Je m'arrache les cheveux sur un problème d'apperçu avant impression.

Lorsque je lance mon appli, je peux faire autant d'apperçus que je veux sans aucun problème mais dès que j'imprime, les apperçus suivants s'affichent avec des caractères tellement petits qu'ils en sont illisibles.

Je ne peux pas mettre mon code car il fait des kilomètres mais pour expliquer un peu, tout est codé "à la main" (j'entends par là que je n'utilise pas Crystal Reports ou autres outils de ce genre.

Chaque ligne à afficher/imprimer est mise dans un tableau de structures contenant le texte et tous ses paramètres (position X et Y, font, taille de caractère, couleur de texte, italique, etc...). Ce tableau est remis à 0 entre deux apperçus et/ou impressions.

J'utilise l'objet un objet PRN que j'initialise comme étant ma Form ou l'imprimante en fonction de ce que je veux faire (afficher ou imprimer). En gros ça donne :
Dim PRN as Object
' Pour une impression
Set PRN = Printer
' Pour un apperçu
Set PRN = FrmPreview ' FrmPreview est ma Form servant à l'apperçu

Pour la sortie du texte, j'utilise ensuite les méthodes de Printer (Print, Line, EndDoc, etc...)

Il arrive aussi parfois, toujours après un première impression, que j'aie une erreur d'exécution 6 sur une ligne qui ne devrait normalement pas poser de problème :
TextLength = PRN.TextWidth("Contact : ")

Lorsque j'imprime malgré l'apperçu avec des caractères minuscules, l'impression est presque bonne mis à part le titre en haut de page qui est décalé vers la droite et une ligne où du texte se chevauche. Il s'agit justement de cette ligne 'Contact : ' qui provoque parfois une erreur (visiblement sur ce texte, l'appel à la méthode TextWidth provoque une erreur ou revoit une valeur erronée).

Sans mettre l'intégralité de mon code, je ne m'attends bien sûr pas à une réponse directe au problème. Par contre, si quelqu'un peut me donner une idée de la direction dans laquelle chercher l'erreur, ce serait déjà énorme car ça fait un moment que je sèche dessus.

Merci d'avance,
Fabrice

4 réponses

Messages postés
91
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
23 décembre 2005

tu peux m'envoyer ton code ?
3
Messages postés
91
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
23 décembre 2005

J'ai vu sur ton message que tu as mis :

Dim PRN as Object

' Pour une impression

Set PRN = Printer

' Pour un apperçu

Set PRN = FrmPreview



Si j'ai bien compris, c soit tu utilises l'un soit tu utilises l'autre ?! c bien ca ?

Perso, j'aurai fait deux déclarations differentes !
0
Messages postés
7
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
29 décembre 2005

C'est bien ça, j'utilise l'un ou l'autre en fonction de ce qu'on veut faire (apperçu ou impression).

Je viens de trouver une solution à mon problème mais elle ne me satisfait pas entièrement car je n'ai toujours pas l'explication du bug. Le problème venait d'un objet stdFont que j'avais déclaré en Public. En déclarant la police à l'intérieur d'une procédure ça marche impeccable mais je suppose que je perds un peu en rapidité d'exécution puisqu'il faut recréer l'objet stdFont à chaque fois que je fais appel à ma procédure (en gros pour chaque ligne de texte à imprimer).
0
Messages postés
7
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
29 décembre 2005

Pas vraiment, si je fais ça je vais saturer le forum ;-)
0