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 |
|
|
| demande explication KGF pour imprimer en mm | |
| | Auteur | Message |
---|
lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: demande explication KGF pour imprimer en mm Mer 13 Mar 2024 - 20:20 | |
| Bonsoir à tous. @Klaus Peux tu STP me dire comment faire pour imprimer en millimètres. Ci joint un morceau de programme - Code:
-
dim dll$ dll$ = "KGF.dll" DLL_ON dll$ dim r%, G% , B% , pol$ , sz% , coulsiz% , x% , y% , txt$ , res% , phnd% , chnd% , clsz% , attr$ R% = 0: G% = 255: B% = 0 : ' <===== en integer ! pol$ = "Courier" sz% = 12 coulsiz% = ((B%*256+G%)*256+R%)*256 + sz% : ' <====== R, G, B en integer, ajout de sz% ' coulsiz% =32768 + sz% coulsiz% =0 + sz% attr$ = "B" res% = DLL_call4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0) : ' init imprimante res% = DLL_call4("PrinterManager",121,ADR(phnd%),ADR(chnd%),0) : ' init imprimante res% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),9,0,0) clsz% = coulsiz% x%=100 y%=50 txt$= " La ligne un va etre imprimée" res% = DLL_call6("PrinterPrintText",ADR(txt$),ADR(pol$),ADR(attr$),clsz%,ADR(x%),ADR(y%)) res% = DLL_call4("PrinterManager",3,ADR(phnd%),ADR(chnd%),0): ' fermer et imprimer message "Fin" Merci par avance Bonne soirée à tous | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: demande explication KGF pour imprimer en mm Ven 15 Mar 2024 - 10:38 | |
| Bonjour à vous.
@JL35
J'ai vu dans certains messages que tu imprimais des txt avec la DLL de Klaus.
Comme je le demande dans mon sujet, imprimes tu en
millimètres.
En pixels ce n'est pas facile, car chaque imprimante est différente
Merci par avance.
Bonne journée
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: demande explication KGF pour imprimer en mm Ven 15 Mar 2024 - 13:45 | |
| Bonjour lepetitmarocain, Pardonne-moi si je n'interprète pas bien ta question, pour moi le problème c'est de représenter à l'écran l'image d'une page A4, pour avoir l'image de ce qui sera imprimé sur la feuille. Ça dépend de l'écran (moniteur) dont on dispose, personnellement j'ai la chance d'avoir un écran de 24 pouces, définition 1920x1200 pixels, et j'y représente une page A4 grandeur nature (210x297 mm) sur 778x1100 pixels. (rappel: le rapport des dimensions A4 est racine de 2) 1 millimètre y est donc représenté par 1100/297 pixels. J'utilise donc ce rapport (r = 1100/297) pour convertir toutes les dimensions en pixels pour l'impression. Par exemple, 50 millimètres seront représentés à l'écran par 50*r pixels. L'image de la page A4 peut être plus petite (écran plus petit), par exemple w=600 pixels, h = 848 pixels (h = w*racine de 2), dans ce cas le rapport sera r = 848/297, pixels par millimètre. Est-ce que cela peut répondre à ta demande ? PSA toutes fins utiles, voici la sub dont je me sers pour imprimer une page A4 intégrale. Elle fait appel au module WinTextPrint de l'ami Klaus à trouver sur son site (mais pas dans KGF.dll). Je m'en sers très souvent, l'image imprimée correspond exactement à l'image d'origine: - Code:
-
SUB Print_A4(f$,or%) ' Impression d'une image de page A4, orientation or%=0 Portrait, =1 Paysage ' Dimensions conservées, seules manquent les marges non imprimables. ' Page de 778x1100 pixels, pixels imprimables (imprimante Canon): ' PORTRAIT: xg mini = 11, xd maxi = 763, yh mini = 11, yb maxi = 1080 ' -> w = 753 pixels, h = 1070 pixels ' PAYSAGE: xg mini = 11, xd maxi = 1080, yh mini = 11, yb maxi = 763 ' -> w = 1070 pixels, h = 753 pixels ' Surface imprimable: ~ 203,3 x 288 mm ' marges portrait: mg = 2,97 mm, md = 3,78 mm, mh = 2,97 mm, mb = 6 mm ' Arrondi: Marges non imprimées Gauche,Droite,Haut = 3 mm, Bas = 6 mm DIM_LOCAL wtp$,ft$,w$,h$,a$ wtp$ = "C:\UTIL\WinTextPrint.exe": ' module 'Klaus' (chemin à adapter) ft$ = "Z:\Balises.txt": ' fichier temporaire de manoeuvre (idem à adapter !) IF or% = 0 w$ = "210": h$ = "297": a$ = "<#orientation=Portrait#>" ELSE w$ = "297": h$ = "210": a$ = "<#orientation=Paysage#>" END_IF FILE_OPEN_WRITE 1,ft$ FILE_WRITELN 1,a$+" <#image="+f$+","+STR$(-3)+","+STR$(-3)+","+w$+","+h$+"#>" FILE_CLOSE 1 EXECUTE_WAIT wtp$+"|/file="+ft$ FILE_DELETE ft$ END_SUB Une précision concernant WinTextPrint: L'image qui sera imprimée sera au format d'une feuille A4, 21x29,7 mm, en redimensionnant l'image d'origine mais sans déformationAutant pour moi, l'image est si nécessaire redimensionnée aux proportions A4 pour remplir la page ! donc l'image d'origine doit être dans ces proportions si on ne veut pas de déformation. Les paramètres cités, en particulier les marges non imprimables, dépendent évidemment (je pense) de l'imprimante utilisée, ils sont cités pour info (à déterminer par essais successifs...) | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: demande explication KGF pour imprimer en mm Ven 15 Mar 2024 - 19:06 | |
| Bonsoir à tous ! @Lepetitmarocain Peut-être trouveras-tu un élément de réponse dans ce qui suit : - Les imprimantes ne fonctionnent pas en système métrique mais en points par pouce ( dot per inch). 1 pouce = 25.4 millimètres. Ainsi, une imprimante ayant une résolution horizontale de 300 points par pouce, pourra aligner 300 points (pixels) sur une longueur de 25,4 mm. - Toutes les imprimantes n’ont pas les mêmes caractéristiques. Différentes résolutions d’impression existent. - Les résolutions d’impression à l’horizontale et à la verticale ne sont pas forcément identiques. - Pour travailler en millimètres, il va falloir interroger les caractéristiques de l’imprimante puis effectuer des calculs pour convertir les données en points par pouce, ou inversement. Voici un petit code qui te donnera les caractéristiques de l’imprimante utilisée pour permettre d’effectuer les calculs. Ce code utilise la DLL de Klaus. - Code:
-
dim res%, phnd%, chnd%
list 1 full_space 1
dll_on "kgf"
res% = DLL_call4("PrinterManager",1,adr(phnd%),adr(chnd%),0)
res% = DLL_call6("PrinterFunction",8,adr(phnd%),adr(chnd%),3,0,0) item_add 1,"Largeur totale en pixels : " + str$(res%)
res% = DLL_call6("PrinterFunction",8,adr(phnd%),adr(chnd%),4,0,0) item_add 1,"Hauteur totale en pixels : " + str$(res%)
res% = DLL_call6("PrinterFunction",8,adr(phnd%),adr(chnd%),5,0,0) item_add 1,"Résolution horizontale en pixels par pouce : " + str$(res%)
res% = DLL_call6("PrinterFunction",8,adr(phnd%),adr(chnd%),6,0,0) item_add 1,"Résolution verticale en pixels par pouce : " + str$(res%)
res% = DLL_call6("PrinterFunction",8,adr(phnd%),adr(chnd%),7,0,0) item_add 1,"Largeur utile en pixels : " + str$(res%)
res% = DLL_call6("PrinterFunction",8,adr(phnd%),adr(chnd%),8,0,0) item_add 1,"Hauteur utile en pixels : " + str$(res%)
res% = DLL_call6("PrinterFunction",8,adr(phnd%),adr(chnd%),9,0,0) item_add 1,"Largeur utile en millimètres : " + str$(res%)
res% = DLL_call6("PrinterFunction",8,adr(phnd%),adr(chnd%),10,0,0) item_add 1,"Hauteur utile en millimètres : " + str$(res%)
end Bonne programmation ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: demande explication KGF pour imprimer en mm Ven 15 Mar 2024 - 21:33 | |
| Merci Marc pour ton code bien utile que je me suis mis de côté sous la forme d'une sub. Effectivement il faut s'adapter à l'imprimante qui est installée. | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: demande explication KGF pour imprimer en mm Sam 16 Mar 2024 - 20:18 | |
| Bonsoir ç tous
@JL35 @Marc
Action , réaction
Merci beaucoup pour les réponses
Je n'avait pas pensé du tout à "Imprimer " d'abord sur écran.
Cela va me permettre d'ajuster mon impression, et surtout gagner du Papier.
Comme mon programme est destiné à plusieurs personnes, je vais être obligé de vérifier la résolution des imprimantes
avant d'imprimer.
Faire peut être comme lorsque l'on travaille sur des écrans différents.
En tout cas je vais m'inspirer de vos réponses pour finir mon travail.
Bonne soirée à tous | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: demande explication KGF pour imprimer en mm Dim 17 Mar 2024 - 14:24 | |
| Juste pour préciser, pardon si j'enfonce des portes ouvertes... La page A4 représentée à l'écran peut avoir n'importe quelles dimensions (proportions respectées évidemment), elle sera adaptée à l'impression au format A4. Plus elle sera proche de la dimension finale et meilleure sera la précision. Pour travailler en mm il suffit de connaître le rapport dimension à l'écran/dimension finale, par exemple: - Code:
-
DIM fr$,wp%,hp%,r,w%,h%,x%,y% fr$ = "Z:\Img.bmp": ' fichier de manoeuvre, à adapter wp% = 600: hp% = wp%*297/210: ' dimensions à l'écran, proportions d'une page A4 BORDER_SMALL 0: COLOR 0,0,0,128 WIDTH 0,wp%+20: HEIGHT 0,hp%+40 PICTURE 1: WIDTH 1,wp%: HEIGHT 1,hp%: 2D_TARGET_IS 1: PRINT_TARGET_IS 1 r = hp%/297: ' pixels écran par mm de la page A4 imprimée ' Exemple: tracé rectangle de 100x75 mm, en x=24 y=35 (dimensions imprimées) w% = 100*r: h% = 75*r: x% = 24*r: y% = 35*r 2D_RECTANGLE x%,y%,x%+w%,y%+h% PRINT_LOCATE x%+5,y%+5: PRINT "Rectangle 100x75mm en x=24, y=35" FILE_SAVE 1,fr$ ' Print_A4(fr$,0) END
SUB Print_A4(f$,or%) ' Impression d'une image de page A4, orientation or%=0 Portrait, =1 Paysage ' Dimensions conservées, seules manquent les marges non imprimables. ' -> *** Image redimensionnée pour remplir la page A4 *** ' Page de 778x1100 pixels, pixels imprimables (imprimante Canon): ' PORTRAIT: xg mini = 11, xd maxi = 763, yh mini = 11, yb maxi = 1080 ' -> w = 753 pixels, h = 1070 pixels ' PAYSAGE: xg mini = 11, xd maxi = 1080, yh mini = 11, yb maxi = 763 ' -> w = 1070 pixels, h = 753 pixels ' Surface imprimable: ~ 203,3 x 288 mm ' marges portrait: mg = 2,97 mm, md = 3,78 mm, mh = 2,97 mm, mb = 6 mm ' Arrondi: Marges non imprimées Gauche,Droite,Haut = 3 mm, Bas = 6 mm ' NB: si l'image à imprimer est inférieure à A4, elle est imprimée en haut ' à gauche de la feuille (dimensions respectées) <- FAUX, redimensionnée ! DIM_LOCAL wtp$,ft$,w$,h$,a$ wtp$ = "C:\UTIL\WinTextPrint.exe": ' module 'Klaus' ft$ = "Z:\Balises.txt": ' fichier temporaire de manoeuvre IF or% = 0 w$ = "210": h$ = "297": a$ = "<#orientation=Portrait#>" ELSE w$ = "297": h$ = "210": a$ = "<#orientation=Paysage#>" END_IF FILE_OPEN_WRITE 1,ft$ FILE_WRITELN 1,a$+" <#image="+f$+","+STR$(-3)+","+STR$(-3)+","+w$+","+h$+"#>" FILE_CLOSE 1 EXECUTE_WAIT wtp$+"|/file="+ft$ FILE_DELETE ft$ END_SUB Il faut aussi prévoir un minimum de zones périphériques non imprimables, ça dépend des imprimantes mais par exemple 5 à 10 mm en haut, gauche et droite, 10 mm en bas, ça doit couvrir tous les cas... Pour l'impression il faut prévoir quelque chose de plus standard que la sub Print_A4 ! PS Peut-être la sub d'impression ci-dessous serait-elle plus universelle que celle avec WinTextPrint: - Code:
-
SUB PrintA4n(f$) ' - Impression de l'image d'une page A4 (dimensions quelconques mais ' proportions A4) sur l'imprimante par défaut.. ' ====================================================== ' NB: Image agrandie à l'impression au format A4 total, pas de marges ! ' ====================================================== ' - La surface totale est imprimée, prévoir des marges pour les bordures (~3mm) ' - Orientation Portrait/Paysage automatique en fonction des proportions ' de l'image à imprimer. DIM_LOCAL q$,scr$,pt$,ptr$,a$,k% IF VARIABLE("nimpr$") = 0: ' Nom de l'imprimante par défaut DIM nimpr$ EXECUTE_WAIT "cmd.exe|/c Cscript %WINDIR%\System32\Printing_Admin_Scripts\fr-FR\Prnmngr.vbs -g |clip" a$ = CLIPBOARD_STRING_PASTE$ k% = INSTR(a$,"L'imprimante ") nimpr$ = TRIM$(RIGHT_POS$(a$,k%+28)): ' Nom de l'imprimante implicite END_IF q$ = CHR$(34) pt$ = "rundll32 shimgvw.dll ImageView_PrintTo /pt" EXECUTE_WAIT "cmd.exe|/c "+pt$+" "+f$+" "+q$+nimpr$+q$ END_SUB | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: demande explication KGF pour imprimer en mm Mar 19 Mar 2024 - 10:28 | |
| Bonjour à tous.
@JL35.
Merci pour ton exemple.
J'ai donc pris le début du premier programme, et la sub qui
suivait.
J'ai bien le carré qui s'affiche sur l'écran, suivi d'une fenêtre
Dos, puis retour au carré.
Donc le programme se passe bien, mais rien sur l'imprimante
J'ai essayé d'imprimer avec le programme de Klaus
(Winprinter),
mai je ne le trouve pas sur son site (il y a le nom, mais il est
inexistant)
Bonne journée. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: demande explication KGF pour imprimer en mm Mar 19 Mar 2024 - 19:52 | |
| Je viens d'imprimer une page A4 avec le programme suivant: - Code:
-
DIM fr$,wp%,hp%,r,w%,h%,x%,y% fr$ = "C:\TEMP\ImgA4.bmp": ' fichier de manoeuvre, à adapter wp% = 600: hp% = wp%*297/210: ' dimensions à l'écran, proportions d'une page A4 BORDER_SMALL 0: COLOR 0,0,0,128 WIDTH 0,wp%+20: HEIGHT 0,hp%+40 PICTURE 1: WIDTH 1,wp%: HEIGHT 1,hp%: 2D_TARGET_IS 1: PRINT_TARGET_IS 1 r = hp%/297: ' pixels écran par mm de la page A4 imprimée ' Exemple: tracé rectangle de 100x75 mm, en x=24 y=35 (dimensions imprimées) w% = 100*r: h% = 75*r: x% = 24*r: y% = 35*r 2D_RECTANGLE x%,y%,x%+w%,y%+h% PRINT_LOCATE x%+5,y%+5: PRINT "Rectangle 100x75mm en x=24, y=35" FILE_SAVE 1,fr$ PrintA4n(fr$) END ' ====================================================================== SUB PrintA4n(f$) ' - Impression de l'image d'une page A4 (dimensions quelconques mais ' proportions A4) sur l'imprimante par défaut.. ' ====================================================== ' NB: Image agrandie à l'impression au format A4 total, pas de marges ! ' ====================================================== ' - La surface totale est imprimée, prévoir des marges pour les bordures (~3mm) ' - Orientation Portrait/Paysage automatique en fonction des proportions ' de l'image à imprimer. DIM_LOCAL q$,scr$,pt$,ptr$,a$,k% IF VARIABLE("nimpr$") = 0: ' Nom de l'imprimante par défaut DIM nimpr$ EXECUTE_WAIT "cmd.exe|/c Cscript %WINDIR%\System32\Printing_Admin_Scripts\fr-FR\Prnmngr.vbs -g |clip" a$ = CLIPBOARD_STRING_PASTE$ k% = INSTR(a$,"L'imprimante ") nimpr$ = TRIM$(RIGHT_POS$(a$,k%+28)): ' Nom de l'imprimante implicite END_IF q$ = CHR$(34) pt$ = "rundll32 shimgvw.dll ImageView_PrintTo /pt" EXECUTE_WAIT "cmd.exe|/c "+pt$+" "+f$+" "+q$+nimpr$+q$ END_SUB Tour se déroule normalement, la page est bien imprimée au format A4 avec les dimensions et l'emplacement de la figure respectées. Il faut évidemment que l'imprimante soit sous tension et prête à imprimer, elle met quelques secondes à se déclencher, il faut attendre. Quant au WinTextPrint.exe de Klaus je ne sais pas s'il est toujours sur son site, je vais regarder... PS: Effectivement, il semble que WinTextPrint.exe n'est plus disponible sur le site de Klaus, peut-être y a t'il une fonction dans KGF.dll qui fait la même chose ...? | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: demande explication KGF pour imprimer en mm Ven 22 Mar 2024 - 10:13 | |
| Bonjour à tous
@JL35.
Merci pour le programme, qui fonctionne aussi chez moi.
Il ne me reste plus qu'à le comprendre, l'adapter à mes
impressions et le garder précieusement.
Bonne journée. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: demande explication KGF pour imprimer en mm Sam 23 Mar 2024 - 15:03 | |
| Cher petitmarocain c'est encore moi, La solution que je t'ai donné ne me semble pas aussi rigoureuse à l'impression que WinTextPrint. Comme ce WinTetPrint semble ne plus être disponible, je te suggère d'utiliser directement la fonction d'impression de KGF.dll qui elle respecte bien les positionnements et dimensions en millimètres. J'ai fait une petite sub en conséquence, à tester (ici appel de la sub: affichage d'une image aux proportions A4 avec dessin d'un rectangle central de 200x280 mm et deux traits centraux, pour vérifier les mesures au double-décimètre sur la feuille imprimée finale). A voir ce que tu peux en faire... - Code:
-
DIM f$,ppm,x,y,x1,y1 f$ = "Z:\A4.bmp": ' à ajuster BORDER_SMALL 0: WIDTH 0,778+16: HEIGHT 0,1134 PICTURE 1: WIDTH 1,778: HEIGHT 1,1100: 2D_TARGET_IS 1: PRINT_TARGET_IS 1 ppm = 1100/297: ' pixels à l'écran par millimètre x = 5*ppm: x1 = 205*ppm y = 5*ppm: 2D_LINE x,y,x1,y: ' trait haut y1 = 285*ppm: 2D_LINE x,y1,x1,y1: ' trait bas 2D_LINE x,y,x,y1: 2D_LINE x1,y,x1,y1: ' traits gauche et droite x = 105*ppm: 2D_LINE x,y,x,y1: ' traits centraux, vertical x = 5*ppm: y = 145*ppm: 2D_LINE x,y,x1,y; ' horizontal PRINT_LOCATE 25,20: PRINT "200 x 280 mm" FILE_SAVE 1,f$ A4_Print(f$,0) END
SUB A4_Print(f$,ori%) ' Impression sur feuille A4 de l'image f$ ' ori% = 0: portrait, =1: paysage DIM_LOCAL prn$,phnd%,chnd%,i%,j%,px,mg%,mh%,xi%,yi%,x,y,w,h,wi%,hi% prn$ = "": ' imprimante implicite w = 210: h = 297: IF ori% = 1 THEN w = 297: h = 210: ' dimensions en mm DLL_ON "C:\PANORAMIC\KGF\KGF.dll": ' A AJUSTER ! i% = DLL_CALL4("PrinterManager",10,ADR(phnd%),ADR(chnd%),ADR(prn$)): ' init i% = DLL_CALL4("PrinterManager",4,ADR(phnd%),ADR(chnd%),ori%): ' orientation i% = DLL_CALL4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0): ' init px = 7013/297: ' pixels par mm à l'impression (def. imprimante = 4962x7013 pixels) xi% = 0: yi% = 0: wi% = w*px: hi% = h*px: ' mm->pixels (valeurs entières exigées) mg% = 75: mh% = 75: xi% = xi%-mg%: yi% = yi%-mh%: ' compense décalage marges non imprimables j% = -2: i% = DLL_CALL6("PrinterFunction",6,ADR(phnd%),ADR(chnd%),0,j%,1) i% = DLL_CALL6("PrinterFunction",4,ADR(phnd%),ADR(chnd%),0,xi%,yi%): ' positionnement i% = DLL_CALL6("PrinterFunction",7,ADR(phnd%),ADR(chnd%),ADR(f$),wi%,hi%) i% = DLL_CALL4("PrinterManager",3,ADR(phnd%),ADR(chnd%),0): ' Lancement impression DLL_OFF END_SUB | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: demande explication KGF pour imprimer en mm Lun 25 Mar 2024 - 19:21 | |
| Bonsoir à tous
@JL35
Merci pour le second exemple pour imprimer.
Du coup je vais être obligé de jouer au 421 pour les départager.
Là je rigole
Je trouve le second avec KGF.dll un peu plus facile à paramétrer que le premier, mais le premier est pas mal du tout.
Ce qui me plait dans les 2, c'est que l'on visualise d'abord l'impression sur l’écran de l'ordi, et donc possibilité d'imprimer
ou non.
Merci
Bonne soirée | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: demande explication KGF pour imprimer en mm Lun 25 Mar 2024 - 21:41 | |
| @lepetitmarocain C'est vrai qu'on a le choix et c'est tant mieux, à toi maintenant de choisir ce qui te convient le mieux Personnellement je m'en sers assez souvent, arbitrairement plutôt la sub avec KGF.dll. Bonne continuation et bonne soirée à toi aussi l'ami ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: demande explication KGF pour imprimer en mm Mar 26 Mar 2024 - 10:06 | |
| Papier millimétréJe ne sais pas si tu as connu, c'est vieux, autrefois on dessinait des schémas sur du 'papier millimétré' acheté dans le commerce, format A4. Comment le fabriquer soi-même (rien de révolutionnaire !), utilisation de l'impression KGF.dll: - Code:
-
' Impression de papier millimétré DIM w,h,ppm,mg,mh,x,y,f$ f$ = "Z:\Gril.bmp": ' fichier provisoire, à ajuster w = 778: h = 1100: ' proportions A4 ppm = h/297: ' pixels/mm mg = 5: mh = 5: ' marges gauche et haut WIDTH 0,w+16: HEIGHT 0,h+34: BORDER_SMALL 0: COLOR 0,0,80,80 PICTURE 1: WIDTH 1,w: HEIGHT 1,h: 2D_TARGET_IS 1 2D_PEN_COLOR 255,96,40 2D_PEN_COLOR 255,180,128 FOR x = 0 TO 200: ' lignes verticales 2D_PEN_WIDTH 1: IF x/10 = INT(x/10) THEN 2D_PEN_WIDTH 2 2D_LINE (x+mg)*ppm,mh*ppm,(x+mg)*ppm,h-mg*ppm NEXT x FOR y = 0 TO 285: ' lignes horizontales 2D_PEN_WIDTH 1: IF y/10 = INT(y/10) THEN 2D_PEN_WIDTH 2 2D_LINE mg*ppm,(y+mh)*ppm,w-mg*ppm,(y+mh)*ppm NEXT y x = MESSAGE_CONFIRMATION_YES_NO("Imprimante prête ?") IF x = 1 FILE_SAVE 1,f$: A4_Print(f$,0): FILE_DELETE f$ END_IF END ' ============================================================================ SUB A4_Print(f$,ori%) ' Impression sur feuille A4 de l'image f$ ' ori% = 0: portrait, =1: paysage DIM_LOCAL prn$,phnd%,chnd%,i%,j%,px,mg%,mh%,xi%,yi%,x,y,w,h,wi%,hi% prn$ = "": ' impression sur l'imprimante implicite w = 210: h = 297: IF ori% = 1 THEN w = 297: h = 210: ' dimensions A4 en mm DLL_ON "C:\PANORAMIC\KGF\KGF.dll": ' A AJUSTER ! i% = DLL_CALL4("PrinterManager",10,ADR(phnd%),ADR(chnd%),ADR(prn$)): ' init i% = DLL_CALL4("PrinterManager",4,ADR(phnd%),ADR(chnd%),ori%): ' orientation i% = DLL_CALL4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0): ' init px = 7013/297: ' pixels par mm à l'impression (def. imprimante = 4962x7013 pixels) xi% = 0: yi% = 0: wi% = w*px: hi% = h*px: ' mm->pixels (valeurs entières exigées) mg% = 75: mh% = 75: xi% = xi%-mg%: yi% = yi%-mh%: ' compense décalage marges non imprimables j% = -2: i% = DLL_CALL6("PrinterFunction",6,ADR(phnd%),ADR(chnd%),0,j%,1) i% = DLL_CALL6("PrinterFunction",4,ADR(phnd%),ADR(chnd%),0,xi%,yi%): ' positionnement i% = DLL_CALL6("PrinterFunction",7,ADR(phnd%),ADR(chnd%),ADR(f$),wi%,hi%) i% = DLL_CALL4("PrinterManager",3,ADR(phnd%),ADR(chnd%),0): ' Lancement impression DLL_OFF END_SUB ' ============================================================================= | |
| | | lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Re: demande explication KGF pour imprimer en mm Jeu 28 Mar 2024 - 12:55 | |
| Bonjour à tous
@JL35
Tu me ramènes à 50 ans en arrière, lorsque les PC n'existaient pas encore, il n'y avait ou presque que des Ordinateurs IBM.
et on imprimait sur de grosses imprimantes avec du papier avec des bandes Caroll.
Il n'y avait pas de possibilités de travailler chez soi, et c’était bien (je ne dis pas que c’était mieux) car maintenant avec les
PC et Internet les informaticiens et autres sont pratiquement obligés de travailler depuis chez eux, et difficile de faire la
difference entre le domicile et le boulot.
Merci pour le programme du papier millimétré.
Je constate que le forum est plutôt calme en ce moment.
Bonne journée
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: demande explication KGF pour imprimer en mm Jeu 28 Mar 2024 - 17:28 | |
| J'ai connu tout ça, IBM, Bull au boulot (télégraphe) et à la maison, surtout le TRS-80 de Tandy, super avec écran intégré (cathodique évidemment...), il est toujours là, dans le grenier... Bonne journée aussi en tout cas ! | |
| | | Contenu sponsorisé
| Sujet: Re: demande explication KGF pour imprimer en mm | |
| |
| | | | demande explication KGF pour imprimer en mm | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |