Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| KGF.dll Bug ou pas ? | |
| | |
Auteur | Message |
---|
lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: KGF.dll Bug ou pas ? Sam 4 Déc 2021 - 20:32 | |
| - Code:
-
impression:
attr$ = "BAXAY": ' gras, positionnement en absolu
R% = 0: G% = 255: B% = 0 : ' <===== en integer ! pol$ = "Arial" sz% = 12 coulsiz% = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz%
' **** Apercu de l'impression ***
apercu% = DLL_call1("MetaPrinterMode",1)
' **************************************
f$=dir_current$+"\"+text$ (51) if file_exists (f$) =0 message "Le fichier n'existe pas: "+f$ +chr$(13)+chr$(10)+dir_current$ goto retour end_if a$=text$(53) if a$="" message "il faut saisir un titre" goto retour end_if ' Initialisation impression pour Titre *******************
res% = DLL_call4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0): ' init imprimante ' ********************************************* ' *********** Titre ******************** ' **************************************
txt$= text$(53) : ' titre ***
x%=600 res% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),9,0,0) res% = DLL_call6("PrinterPrintText",ADR(txt$),ADR(pol$),ADR(attr$),clsz%,ADR(x%),ADR(y%))
file_open_read 1,f$ x% = 250: y% = 200 : ' <======= initialiser le positionnement ici, hors de la boucle !
while file_eof(1) <> 1 file_readln 1, a$
attr$ = "BAXAY": ' gras, positionnement en absolu R% = 0: G% = 255: B% = 0 : ' <===== en integer ! clsz% = cl% + sz% : ' <====== ????????? inutile, pas utilisé ! ' x% = 250: y% = 200 <======= ne pas réinitialiser ici ! pol$ = "Courier" sz% = 10 coulsiz% = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz%
txt$=mid$(a$,1,1)
y% = y% + 45 x%=200
' Préparation impression de txt$
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%)) txt$=mid$(a$,2,30) x%=250
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%))
txt$=ltrim$(mid$(a$,32,15))
x%=800
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%)) end_while
' Clôture et lancement impression res% = DLL_call4("PrinterManager",3,ADR(phnd%),ADR(chnd%),0): ' fermer et imprimer
TERMINATE Bonsoir Klaus.
Voila un morceau de code, qui fait voir qu'avant la ligne aperçu%, j'ai mis les lignes de police et de taille, et meme dans ce cas
la taille reste minuscule.
J’espère que tu pourras comprendre un peu mieux ma demande
Bonne soirée | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll Bug ou pas ? Dim 5 Déc 2021 - 1:16 | |
| Plusueurs remarques: 1. c'est juste un extrait d''un ensemble plus grand. Il manque les objets, les variables, le fichier utilisé etc. Il est très difficile de dire quelque chose sans pouvoir executer. J'ai donc tenté de créer artificiellement ce qui manque pour pouvoir tester. 2. Tu utilises une variable text$ qui utilise un mot réservé en Panoramic. Toléré en interprétation, mais pas en compilation. Pratique à éviter absolument. Voici la ligne: - Code:
-
txt$= text$(53) : ' titre *** 3. La ligne - Code:
-
res% = DLL_call6("PrinterPrintText",ADR(txt$),ADR(pol$),ADR(attr$),[b]clsz%[/b],ADR(x%),ADR(y%)) utilise une variable clsz% dont je ne vois pas l'initialisation. Ne serait-ce pas plutôt coulsize% qui serait approprié ici ? En tout cas, si clsz% contient une valeur invalide (0 par exemple), pas étonnant alors que l'impression soit "petite" pisque par défaut, l'imprimante utilise alors la plus petite taille pour la police ce qui, en général, est 8... 4. Tout au début, tu as: - Code:
-
[b]coulsiz%[/b] = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz%
' **** Apercu de l'impression ***
apercu% = DLL_call1("MetaPrinterMode",1) Or, lorsque tu commences à utiliser vraiment l'imprimante, tu utilises la mauvaise variable: - Code:
-
res% = DLL_call6("PrinterPrintText",ADR(txt$),ADR(pol$),ADR(attr$),[b]clsz%[/b],ADR(x%),ADR(y%)) Et un peu plus loin, tu redéfinis cette variable avec une taille 10 (ce qui n'est pas grand du tout): - Code:
-
pol$ = "Courier" sz% = 10 [b]coulsiz%[/b] = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz% Regarde bien ce que j'ai fait pour au moins "tenter" de faire quelque chose: - Code:
-
dim attr$, pol$, coulsiz%, apercu%, s$, a$, x%, txt$ dim y%, sz%, res%, R%, G%, B%, f$, phnd%, chnd%, text$ dim clsz% phnd% = 0 chnd% = 0 label retour dll_on "KGF.dll"
' impression:
attr$ = "BAXAY": ' gras, positionnement en absolu
R% = 0: G% = 255: B% = 0 : ' <===== en integer ! pol$ = "Arial" sz% = 12 coulsiz% = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz%
' **** Apercu de l'impression ***
apercu% = DLL_call1("MetaPrinterMode",1)
' **************************************
' f$=dir_current$+"\"+text$ (51) f$=dir_current$+"\"+"MonImpression.dat" file_open_write 1,f$ file_writeln 1,"Une ligne de test" file_close 1 if file_exists (f$) =0 message "Le fichier n'existe pas: "+f$ +chr$(13)+chr$(10)+dir_current$ goto retour end_if ' a$=text$(53) a$="test d'impression" if a$="" message "il faut saisir un titre" goto retour end_if ' Initialisation impression pour Titre *******************
res% = DLL_call4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0) : ' init imprimante ' ********************************************* ' *********** Titre ******************** ' **************************************
' txt$= text$(53) : ' titre *** text$ = "abcdef"
x%=600 res% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),9,0,0) clsz% = coulsiz% res% = DLL_call6("PrinterPrintText",ADR(txt$),ADR(pol$),ADR(attr$),clsz%,ADR(x%),ADR(y%))
file_open_read 1,f$ x% = 250: y% = 200 : ' <======= initialiser le positionnement ici, hors de la boucle !
while file_eof(1) <> 1 file_readln 1, a$
attr$ = "BAXAY": ' gras, positionnement en absolu R% = 0: G% = 255: B% = 0 : ' <===== en integer ! ' clsz% = cl% + sz% : ' <====== ????????? inutile, pas utilisé ! ' x% = 250: y% = 200 <======= ne pas réinitialiser ici ! pol$ = "Courier" sz% = 10 coulsiz% = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz%
txt$=mid$(a$,1,1)
y% = y% + 45 x%=200
' Préparation impression de txt$
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%)) txt$=mid$(a$,2,30) x%=250
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%))
txt$=ltrim$(mid$(a$,32,15))
x%=800
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%)) end_while
' Clôture et lancement impression res% = DLL_call4("PrinterManager",3,ADR(phnd%),ADR(chnd%),0): ' fermer et imprimer retour: TERMINATE Et ce n'est pas parfait, car on n'imprime rien... La prochaine fois, crée un petit extrait OPERATIONNEL de ton programme de sorte que je puisse tester sans avoir un monstre de code à parcourir. Juste de quoi mettre le problème en évidence. Mais enfin, tu as quelques pistes, maintenant. | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: KGF.dll Bug ou pas ? Dim 5 Déc 2021 - 18:15 | |
| Bonsoir Klaus. Comme c'est toujours la même chose pour l'impression, j'envoie le programme et le fichier. Lorsqu'il y a en service la ligne apercu% = DLL_call1("MetaPrinterMode",1)l'aperçu se fait, mais a visualiser avec des jumelles, et même l'impression à partir ce cette visu est très petite Si on enlève cette ligne, l'impression se fait normalement avec la bonne police. je joins également un fichier que tu pourras appeler comme tu veux, et c'est ce nom qu'il faudra saisir en début de programme. (je le joins en code, car je ne sais pas comment faire pour joindre un fichier: à créer avec Bloc Notes) Le titre bien entendu importe peu. Merci de ton implication Bonne soirée - Code:
-
' ************************************************************
' ******************** Impression ****************
' *************************************************************
DIM dll$, res%, phnd%, chnd%, txt$, pol$, sz%, attr$, cl%, clsz%, x%, y%, R%, G%, B% ,toto$ , fichier$ , titre$ : ' R, G, B en integer ! dim passage ,f$ , coulsiz% , mvts_txt$ , longueur_libelle, blancs dim apercu% dll$ = "KGF.dll" label final
label impression
label retour DLL_ON dll$
dim a$ retour: passage=passage+1 if passage=1 alpha 50 top 50,50 caption 50, "Saisir le nom du fichier " color 50 ,0,224,255 font_size 50, 15 edit 51 top 51,50 left 51,350 height 51, 30 alpha 52 top 52,150 caption 52, "Saisir le Titre " color 52 ,160,160,255 font_size 52, 15 edit 53 top 53,150 left 53,350 height 53, 30 button 55 top 55,250 left 55,400 caption 55, "Impression on_click 55, impression button 56 top 56,250 left 56,200 caption 56 ,"Fin" on_click 56 , final end_if
end
impression:
attr$ = "BAXAY": ' gras, positionnement en absolu
R% = 0: G% = 255: B% = 0 : ' <===== en integer ! pol$ = "Arial" sz% = 12 coulsiz% = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz%
' **** Apercu de l'impression ***
apercu% = DLL_call1("MetaPrinterMode",1)
' **************************************
f$=dir_current$+"\"+text$ (51) if file_exists (f$) =0 message "Le fichier n'existe pas: "+f$ +chr$(13)+chr$(10)+dir_current$ goto retour end_if a$=text$(53) if a$="" message "il faut saisir un titre" goto retour end_if ' Initialisation impression pour Titre *******************
res% = DLL_call4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0) : ' init imprimante ' ********************************************* ' *********** Titre ******************** ' **************************************
txt$= text$(53) : ' titre ***
x%=600 res% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),9,0,0) clsz% = coulsiz% res% = DLL_call6("PrinterPrintText",ADR(txt$),ADR(pol$),ADR(attr$),clsz%,ADR(x%),ADR(y%))
file_open_read 1,f$ x% = 250: y% = 200 : ' <======= initialiser le positionnement ici, hors de la boucle !
while file_eof(1) <> 1 file_readln 1, a$
attr$ = "BAXAY": ' gras, positionnement en absolu R% = 0: G% = 255: B% = 0 : ' <===== en integer ! ' clsz% = cl% + sz% : ' <====== ????????? inutile, pas utilisé ! ' x% = 250: y% = 200 <======= ne pas réinitialiser ici ! pol$ = "Courier" sz% = 10 coulsiz% = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz%
txt$=mid$(a$,1,1)
y% = y% + 45 x%=200
' Préparation impression de txt$
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%)) txt$=mid$(a$,2,30) x%=250
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%))
txt$=ltrim$(mid$(a$,32,15))
x%=800
res% = DLL_call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),coulsiz%,adr(x%),adr(y%)) end_while
' Clôture et lancement impression res% = DLL_call4("PrinterManager",3,ADR(phnd%),ADR(chnd%),0): ' fermer et imprimer TERMINATE
end
final: terminate end
- Code:
-
CGaz Total Spring(01/08) 95.00111111110000 CTaxe Habitation 41.00111111111100 CPoste 50.00111111111111 CPredica 152.45111111111111 CTaxe Fonciere 144.00111111111111 CElectricité Total Spring (01/08) 35.00111111111111 CMutuelle 227.10111111110000 CFree 38.96111111111111 CAveugle 10.00111111111111 CAssurance Credit Agricole 6.46111111111111 CAssurance Carrefour 4.35111111111111 CLe Parisien 28.90111111111111 Cscience avenir 5.00111111111111 Cmedecins sans frontieres 7.00111111111111 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll Bug ou pas ? Dim 5 Déc 2021 - 20:16 | |
| Ok. Je vais regarder cela. | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: KGF.dll Bug ou pas ? Jeu 9 Déc 2021 - 19:18 | |
| Bonsoir Klaus.
As tu pu regarder STP le problème concernant cette commande de la DLL
apercu% = DLL_call1("MetaPrinterMode",1)
Merci pour ta réponse
Bonne soirée | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll Bug ou pas ? Ven 10 Déc 2021 - 0:25 | |
| Oui, je regarde - je n'ai pas oublié. Simplement, en ce moment, j'ai une "petite" surcharge ur le plan peronnel, mais ça va passer. Patience... | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: KGF.dll Bug ou pas ? Lun 21 Fév 2022 - 9:53 | |
| Bonjour à tous. Klauss comme tu as fait des modifs, as tu pu regarder STP le problème concernant cette commande de la DLL
apercu% = DLL_call1("MetaPrinterMode",1).
Je voudrais imprimer un autre fichier, mais je ne voudrais pas dépenser du papier lors des tests
Merci par avance. Bonne journée | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF.dll Bug ou pas ? Lun 21 Fév 2022 - 11:22 | |
| Oui. Je n'en suis pas encore tout à fait sûr, mais il est probable que les unités d'un méta-fichier n'ont rien à voir avec les unités d'une page physique sur une imprimante. Je pense que ce mode d'aperçu n'est pas vraiment opérant... Je te conseille d'imprimer dans un PDF ce qui te permet de visualisze à loisir, aux bonnes dimensions? C'est ce que je fais. Pour ma par, j'utilise une imprimante virtuelle produisant un PDF, et c'est gratuit: https://pdfcreator.fr/Ainsi, l'impression dans un PDF sera dispinible partout. Vu par Windows, c'est juste unen imprimante comme une autre. Avec ce logiciel, un outil PDFArchitect sera également livré, mais il ne sert à rien dans ce context. | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: KGF.dll Bug ou pas ? Sam 26 Fév 2022 - 10:09 | |
| Bonjour à tous. Merci Klaus pour ta réponse. Je vais faire comme tu préconises. C'est vrai qu'en test on dépense beaucoup de papier. Bonne journée | |
| | | Contenu sponsorisé
| Sujet: Re: KGF.dll Bug ou pas ? | |
| |
| | | | KGF.dll Bug ou pas ? | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |