lfab29
Messages postés7Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention29 décembre 2005
-
22 déc. 2005 à 00:03
lfab29
Messages postés7Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention29 décembre 2005
-
29 déc. 2005 à 19:08
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.
lfab29
Messages postés7Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention29 décembre 2005 23 déc. 2005 à 09:50
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).