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 et Imprimante | |
| | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Kgf et Imprimante Ven 21 Mai 2021 - 14:41 | |
| Au secours Klaus ! Cela fait une éternité que je ne me suis pas servi des fonctions d'impression et je me suis perdu dans toutes les fonctions de kgf. Je cherche à récupérer la résolution d'impression de l'imprimante. Pourrais tu m'indiquer le chemin vers la lumière ? | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Ven 21 Mai 2021 - 16:50 | |
| Salut Yannick, Klaus est absent pour le moment, alors si tu veux voilà une petite sub de mes archives (utilisation de la DLL de l'ami Klaus) qui te donnera pas mal de renseignements sur ton imprimante. Paramètres: orient% = 0 si Portrait, = 1 si Paysage prn$ = "" si c'est l'imprimante par défaut, sinon nom de l'imprimante. - Code:
-
SUB Pr_infos(orient%,prn$) ' Initialisation imprimante ('début d'impression') ' orient% = 0 Portrait, = 1 Paysage ' prn$ = "": imprimante par défaut ' sinon nom de l'imprimante (pour essais) ' par exemple "Microsoft XPS Document Writer" impression virtuelle ' dans un fichier .XPS ' Dans les paramètres des fonctions, le positionnement initial doit être fait en ' valeurs absolues: distances par rapport aux bords gauche et haut de la feuille ' A4, sans tenir compte des marges non imprimables. ' Les couleurs sont à exprimer au format BGR (en non pas RGB): B*256*256+G*256+R DLL_ON "C:\PANORAMIC\KGF\KGF.dll" IF VARIABLE("phnd%") = 0 THEN DIM phnd% IF VARIABLE("chnd%") = 0 THEN DIM chnd% IF VARIABLE("inip%") = 0 THEN DIM inip% IF VARIABLE("Pr_res%") = 0 THEN DIM Pr_res% IF VARIABLE("Pr_px%") = 0 THEN DIM Pr_px%: ' pixels par mm (600 dpi) IF VARIABLE("Pr_lt%") = 0 THEN DIM Pr_lt%: ' largeur totale IF VARIABLE("Pr_ht%") = 0 THEN DIM Pr_ht%: ' hauteur totale IF VARIABLE("Pr_rh%") = 0 THEN DIM Pr_rh%: ' résolution H IF VARIABLE("Pr_rv%") = 0 THEN DIM Pr_rv%: ' résolution V IF VARIABLE("Pr_mg%") = 0 THEN DIM Pr_mg%: ' marge gauche IF VARIABLE("Pr_mh%") = 0 THEN DIM Pr_mh%: ' marge haut IF VARIABLE("Pr_lu%") = 0 THEN DIM Pr_lu%: ' largeur utile IF VARIABLE("Pr_hu%") = 0 THEN DIM Pr_hu%: ' hauteur utile IF prn$ <> "": ' pour essais sans impression réelle Pr_res%=DLL_CALL4("PrinterManager",10,ADR(phnd%),ADR(chnd%),ADR(prn$)) END_IF ' Orientation portrait (0) ou paysage (1) Pr_res% = DLL_CALL4("PrinterManager",4,ADR(phnd%),ADR(chnd%),orient%): ' orientation Pr_res% = DLL_CALL4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0): ' init ' Dimensions sans les marges, en pixels: ' ========== ' ATTENTION: Les dimensions sont actualisées en fonction de l'option orientation ! ' ========== Pr_lt% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),3,0,0): ' largeur totale Pr_ht% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),4,0,0): ' hauteur totale IF orient% = 0 Pr_px% = Pr_ht%/297: ' pixels par mm, à l'impression en 600 dpi ELSE Pr_px% = Pr_lt%/297: ' idem (paysage) END_IF ' Résolution d'impression (pixels par pouce) Pr_rh% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),5,0,0): ' pix./pouce H Pr_rv% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),6,0,0): ' pix./pouce H ' Marges non imprimables: décalage en pixels à soustraire gauche et haut: Pr_mg% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),1,0,0): ' marge gauche Pr_mh% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),2,0,0): ' marge haut ' Dimensions utiles, en pixels: IF Pr_mg% = 0 OR Pr_mh%= 0: ' cas imprimante virtuelle (PDFCreator) Pr_mg% = 75: Pr_mh% = 75: ' forçage comme imprimante réelle Pr_lu% = Pr_lt% - 2*Pr_mg%: Pr_hu% = Pr_ht% - 2*Pr_mh% ELSE Pr_lu% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),7,0,0): ' largeur utile Pr_hu% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),8,0,0): ' hauteur utile END_IF END_SUB | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 21 Mai 2021 - 19:05 | |
| Merci JL35 ! Cà c'est une sub musclée J'espère que nôtre ami Klaus va bien et que nous allons pouvoir le relire très vite. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Ven 21 Mai 2021 - 19:46 | |
| Et encore c'est rien, tu verrais le bonhomme ! Pour Klaus, bien sûr j'espère aussi, mais je pense qu'il doit avoir d'autres occupations.
Pour la sub, évidemment le chemin de KGF.DLL est à adapter. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Kgf et Imprimante Ven 21 Mai 2021 - 20:33 | |
| Merci de vous soucier de moi, les amis ! Je vais bien, malgré quelques petits ennuis, mais rien qui me menace essentiellement. Et surtout rien me bloque pour programmer. Sauf ce sanaté Winsows 10 - lors de chaque mise à jour majeure (en gros deus fois par an !), Windows efface ma licence de Delphi. Et je galère chaquye fois pour tout réinstaller et récupérer une licence valide. J'en suis là, pour le moment.
En ce qui concerne la résolution de l'imprimante, JL35 a donné une sub qui montre parfaitement comment on gère ce genre de problème. N'hésite pas à consulter la doc (KGF.chm ou la doc en ligne (via ma signature) concernant ces fonctions. J'ai fait un gros effort de documentation, en son temps, et le logiciel n'a pas changé depuis.
Et dès que j'aurai récupéré ma licence, je serai à nouveau ouvert à toutes suggestions ou demandes... En attendant, je consulte le forum tous les jours. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Ven 21 Mai 2021 - 20:55 | |
| Merci pour les nouvelles Klaus, ça nous fait plaisir. Perso j'utilise aussi ton WinTextPrint qui est un peu à l'écart (indépendant de KGF.dll) mais qui convient très bien à mes besoins. Je suis passé deux fois sous Windows 10 pour revenir à Windows 7 suite à des inconvénients. Je serai bien obligé d'y passer un jour, mais j'attends d'y être forcé...
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Kgf et Imprimante Ven 21 Mai 2021 - 22:53 | |
| @Klaus Essaie de mettre Delphi hors répertoires contrôlés par l’UAC de Windows. Autrement dit installer Delphi dans un autre dossier que Program Files ou Program Files x86, par exemple : c:\Borland\Delphi7 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Kgf et Imprimante Sam 22 Mai 2021 - 2:21 | |
| J'ai déjà essayé, ça. Mais ce n'est pas le problème. Tous les fichiers sont parfaitement conservés, y conpris les clés de reistre dans Windows. Mais la licence est enregistrée ailleurs, et je n'arrive pas savoir où. Mais j'arriverai à tout récupérer, comme je l'ai déjà fait 5 ou 6 fois... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 22 Mai 2021 - 4:04 | |
| Il va falloir que je replonge dans mes archives pour me rappeler comment on se sert de toutes ses fonctions. Actuellement je n'arrive pas à avoir de résultat. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Sam 22 Mai 2021 - 9:21 | |
| Et si tu lances simplement ce petit programme (avec la sub ci-dessus), ça ne donne rien ? (l'imprimante est éteinte) - Code:
-
Pr_infos(0,"") FONT_SIZE 0,10 PRINT: PRINT "mprimante par défaut :" PRINT "Résolution horizontale = "+STR$(Pr_lt%)+" pixels" PRINT "Résolution verticale = "+STR$(Pr_ht%)+" pixels." END
SUB Pr_infos(orient%,prn$) ' Initialisation imprimante ('début d'impression') ' orient% = 0 Portrait, = 1 Paysage ' prn$ = "": imprimante par défaut ' sinon nom de l'imprimante (pour essais) ' par exemple "Microsoft XPS Document Writer" impression virtuelle ' dans un fichier .XPS ' Dans les paramètres des fonctions, le positionnement initial doit être fait en ' valeurs absolues: distances par rapport aux bords gauche et haut de la feuille ' A4, sans tenir compte des marges non imprimables. ' Les couleurs sont à exprimer au format BGR (en non pas RGB): B*256*256+G*256+R DLL_ON "C:\PANORAMIC\KGF\KGF.dll" IF VARIABLE("phnd%") = 0 THEN DIM phnd% IF VARIABLE("chnd%") = 0 THEN DIM chnd% IF VARIABLE("inip%") = 0 THEN DIM inip% IF VARIABLE("Pr_res%") = 0 THEN DIM Pr_res% IF VARIABLE("Pr_px%") = 0 THEN DIM Pr_px%: ' pixels par mm (600 dpi) IF VARIABLE("Pr_lt%") = 0 THEN DIM Pr_lt%: ' largeur totale IF VARIABLE("Pr_ht%") = 0 THEN DIM Pr_ht%: ' hauteur totale IF VARIABLE("Pr_rh%") = 0 THEN DIM Pr_rh%: ' résolution H IF VARIABLE("Pr_rv%") = 0 THEN DIM Pr_rv%: ' résolution V IF VARIABLE("Pr_mg%") = 0 THEN DIM Pr_mg%: ' marge gauche IF VARIABLE("Pr_mh%") = 0 THEN DIM Pr_mh%: ' marge haut IF VARIABLE("Pr_lu%") = 0 THEN DIM Pr_lu%: ' largeur utile IF VARIABLE("Pr_hu%") = 0 THEN DIM Pr_hu%: ' hauteur utile IF prn$ <> "": ' pour essais sans impression réelle Pr_res%=DLL_CALL4("PrinterManager",10,ADR(phnd%),ADR(chnd%),ADR(prn$)) END_IF ' Orientation portrait (0) ou paysage (1) Pr_res% = DLL_CALL4("PrinterManager",4,ADR(phnd%),ADR(chnd%),orient%): ' orientation Pr_res% = DLL_CALL4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0): ' init ' Dimensions sans les marges, en pixels: ' ========== ' ATTENTION: Les dimensions sont actualisées en fonction de l'option orientation ! ' ========== Pr_lt% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),3,0,0): ' largeur totale Pr_ht% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),4,0,0): ' hauteur totale IF orient% = 0 Pr_px% = Pr_ht%/297: ' pixels par mm, à l'impression en 600 dpi ELSE Pr_px% = Pr_lt%/297: ' idem (paysage) END_IF ' Résolution d'impression (pixels par pouce) Pr_rh% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),5,0,0): ' pix./pouce H Pr_rv% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),6,0,0): ' pix./pouce H ' Marges non imprimables: décalage en pixels à soustraire gauche et haut: Pr_mg% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),1,0,0): ' marge gauche Pr_mh% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),2,0,0): ' marge haut ' Dimensions utiles, en pixels: IF Pr_mg% = 0 OR Pr_mh%= 0: ' cas imprimante virtuelle (PDFCreator) Pr_mg% = 75: Pr_mh% = 75: ' forçage comme imprimante réelle Pr_lu% = Pr_lt% - 2*Pr_mg%: Pr_hu% = Pr_ht% - 2*Pr_mh% ELSE Pr_lu% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),7,0,0): ' largeur utile Pr_hu% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),8,0,0): ' hauteur utile END_IF END_SUB | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 22 Mai 2021 - 18:22 | |
| Merci JL35, ca y est cela fonctionne : 2976x4209 | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Sam 22 Mai 2021 - 21:05 | |
| Tu me rassures, et c'est bien le bon rapport (racine de 2, proportions d'une feuille A4). | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 23 Mai 2021 - 12:22 | |
| Pas tant que ca : - Code:
-
Pr_rh% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),5,0,0): ' pix./pouce H Pr_rv% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),6,0,0): ' pix./pouce H me renvoies 0 et c'est celle là qui m'intéressent Le but du jeu est de pouvoir savoir quelles dimensions fera un Picture en mm à l'impression avec l'imprimante par défaut. Il me faut donc la résolution ppp/dpi de l'imprimante. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 14:06 | |
| Voici un extrait de l'aide pour PrinterFuunction: - Code:
-
8 = retourner une dimension de la feuille opt1% = code de la valeur à retourner 1 PHYSICALOFFSETX décalage horizontal en pixel 2 PHYSICALOFFSETY décalage vertical en pixel 3 PHYSICALWIDTH largeur totale en pixel 4 PHYSICALHEIGHT hauteur totale en pixel 5 LOGPIXELSX résolution horizontale en pixels/pouce 6 LOGPIXELSY résolution verticale en pixels/pouce 7 HORZRES largeur utile en pixels 8 VERTRES hauteur utile en pixels 9 HORZSIZE largeur utile en millimètres 10 VERTSIZE hauteur utile en millimètres Et si tu utilisais les codes 7 et 9 pour avoir la largeur utile en pixels et millimètres, ainsi que 8 et 10 pour la partie verticale ? Si tu divises le résultat du code 7 par le résultat du code 9, tu as le facteur horizontal de propoartionalité (résultat bien sûr à mettre dans un flottant, pas dans un entier !). Idem pour le facteur vertical. Ensuite, il ne reste plus qu'à multiplier ta mesure en millimètres par ces facteurs pour trouver les coordonnées en pixels... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 14:31 | |
| Bizarre quand même ! Si j"appelle la sub comme ceci: - Code:
-
Pr_infos(0,"") FONT_SIZE 0,10 FONT_NAME 0,"Lucida Console": FONT_SIZE 0,10 PRINT: PRINT " Imprimante par défaut :" PRINT " =====================" PRINT " Résolution horizontale = "+STR$(Pr_lt%)+" pixels" PRINT " Résolution verticale = "+STR$(Pr_ht%)+" pixels." PRINT " Largeur totale = "+STR$(Pr_lt%)+" pixels" PRINT " Hauteur totale = "+STR$(Pr_ht%)+" pixels" PRINT " Largeur utile = "+STR$(Pr_lu%)+" pixels" PRINT " Hauteur utile = "+STR$(Pr_hu%)+" pixels" print " Définition Horizontale = "+STR$(Pr_rh%)+" pixels/pouce" print " Définition Verticale = "+STR$(Pr_rv%)+" pixels/pouce" Print " pixels/millimètre = "+STR$(Pr_px%) END J'obtiens bien:
Dernière édition par JL35 le Dim 23 Mai 2021 - 14:57, édité 2 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 14:43 | |
| Voici ce que ça donne chez moi: - Code:
-
Pr_infos(0,"")
FONT_SIZE 0,10 PRINT: PRINT "Imprimante par défaut :" PRINT "Résolution horizontale = "+STR$(Pr_lt%)+" pixels" PRINT "Résolution verticale = "+STR$(Pr_ht%)+" pixels." print "p/pouce H = "+STR$(Pr_rh%) print "p/pouce V = "+STR$(Pr_rv%) Print "p/millimètre = "+STR$(Pr_px%) END
SUB Pr_infos(orient%,prn$) ' Initialisation imprimante ('début d'impression') ' orient% = 0 Portrait, = 1 Paysage ' prn$ = "": imprimante par défaut ' sinon nom de l'imprimante (pour essais) ' par exemple "Microsoft XPS Document Writer" impression virtuelle ' dans un fichier .XPS ' Dans les paramètres des fonctions, le positionnement initial doit être fait en ' valeurs absolues: distances par rapport aux bords gauche et haut de la feuille ' A4, sans tenir compte des marges non imprimables. ' Les couleurs sont à exprimer au format BGR (en non pas RGB): B*256*256+G*256+R ' DLL_ON "C:\PANORAMIC\KGF\KGF.dll" DLL_ON "KGF.dll" IF VARIABLE("phnd%") = 0 THEN DIM phnd% IF VARIABLE("chnd%") = 0 THEN DIM chnd% IF VARIABLE("inip%") = 0 THEN DIM inip% IF VARIABLE("Pr_res%") = 0 THEN DIM Pr_res% IF VARIABLE("Pr_px%") = 0 THEN DIM Pr_px%: ' pixels par mm (600 dpi) IF VARIABLE("Pr_lt%") = 0 THEN DIM Pr_lt%: ' largeur totale IF VARIABLE("Pr_ht%") = 0 THEN DIM Pr_ht%: ' hauteur totale IF VARIABLE("Pr_rh%") = 0 THEN DIM Pr_rh%: ' résolution H IF VARIABLE("Pr_rv%") = 0 THEN DIM Pr_rv%: ' résolution V IF VARIABLE("Pr_mg%") = 0 THEN DIM Pr_mg%: ' marge gauche IF VARIABLE("Pr_mh%") = 0 THEN DIM Pr_mh%: ' marge haut IF VARIABLE("Pr_lu%") = 0 THEN DIM Pr_lu%: ' largeur utile IF VARIABLE("Pr_hu%") = 0 THEN DIM Pr_hu%: ' hauteur utile IF prn$ <> "": ' pour essais sans impression réelle Pr_res%=DLL_CALL4("PrinterManager",10,ADR(phnd%),ADR(chnd%),ADR(prn$)) END_IF ' Orientation portrait (0) ou paysage (1) Pr_res% = DLL_CALL4("PrinterManager",4,ADR(phnd%),ADR(chnd%),orient%): ' orientation Pr_res% = DLL_CALL4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0): ' init ' Dimensions sans les marges, en pixels: ' ========== ' ATTENTION: Les dimensions sont actualisées en fonction de l'option orientation ! ' ========== Pr_lt% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),3,0,0): ' largeur totale Pr_ht% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),4,0,0): ' hauteur totale IF orient% = 0 Pr_px% = Pr_ht%/297: ' pixels par mm, à l'impression en 600 dpi ELSE Pr_px% = Pr_lt%/297: ' idem (paysage) END_IF ' Résolution d'impression (pixels par pouce) Pr_rh% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),5,0,0): ' pix./pouce H Pr_rv% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),6,0,0): ' pix./pouce H ' Marges non imprimables: décalage en pixels à soustraire gauche et haut: Pr_mg% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),1,0,0): ' marge gauche Pr_mh% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),2,0,0): ' marge haut ' Dimensions utiles, en pixels: IF Pr_mg% = 0 OR Pr_mh%= 0: ' cas imprimante virtuelle (PDFCreator) Pr_mg% = 75: Pr_mh% = 75: ' forçage comme imprimante réelle Pr_lu% = Pr_lt% - 2*Pr_mg%: Pr_hu% = Pr_ht% - 2*Pr_mh% ELSE Pr_lu% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),7,0,0): ' largeur utile Pr_hu% = DLL_CALL6("PrinterFunction",8,ADR(phnd%),ADR(chnd%),8,0,0): ' hauteur utile END_IF END_SUB
Résultat: Imprimante par défaut: PDFCreator en mode portrait | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 14:51 | |
| Bonjour Klaus, on s'est croisés (j'éditais ci-dessus...) (imprimante HP Photosmart B109a) Un petit gadget, le nom de l'imprimante par défaut, dans le clipboard, mais un peu long à l'exécution (une quinzaine de secondes chez moi...) - Code:
-
SUB Printer_defaut() ' Nom de l'imprimante par défaut -> clipboard DIM_LOCAL a$,k% EXECUTE_WAIT "cmd.exe|/c Cscript %WINDIR%\System32\Printing_Admin_Scripts\fr-FR\Prnmngr.vbs -g |clip" a$ = CLIPBOARD_STRING_PASTE$ k% = INSTR(a$,"est "): CLIPBOARD_STRING_COPY TRIM$(RIGHT_POS$(a$,k%+4)) END_SUB | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 15:54 | |
| Salut tout le monde. @JL35 Et pourquoi pas une fonction qui retourne le nom de l’imprimante par défaut ? - Code:
-
print Printer_defaut$() end rem ============================================================================ FNC Printer_defaut$() DIM_LOCAL a$,k% 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 ") a$ = TRIM$(RIGHT_POS$(a$,k%)) result a$ END_FNC
Chez moi, le résultat est presque instantané | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 16:23 | |
| Tu as bougrement raison papydall, c'est bien mieux avec une Function (sans passer par le clipboard !) bizarrement c'est bien plus rapide... Euh... après plusieurs essais c'est souvent aussi long... Je n'ai pas encore le réflexe des Functions à la place des Subs, mais c'est évidemment mieux dans ce cas. (oui mais... j'ai une bibliothèque de subs,bien garnie, il faut que j'en crée une de fonctions...° | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 17:53 | |
| Ben... il y a aussi KGF.dll: - Code:
-
res% = DLL_call1("GetPrinterNames",handle(obj%)) Cette fonction retourne la liste des noms des imprimantes installées dans un mémo, un combo ou un list (passer le handle de l'objet en paramètre) et retourne comme résultat numérique le numéro de l'imprimante par défaut actuelle (1, 2, ...), donc le numéro de la ligne correspondante dans l'objet. La fonction retourne 0 si aucune imprimante par défaut n'est installée. Voir l'aide en ligne ici: http://klauspanoramic.infinityfreeapp.com/GetPrinterNames.html | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 23 Mai 2021 - 18:15 | |
| La sub est sympa mais je n'ai pas besoin de tout çà. Et cette sub provoque une impression vierge. Quand je prends simplement les deux dont j'ai besoin, pas de résultat. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 18:30 | |
| Sache, Yannick, que pour trouver les informations sur les dimensions et autres caratéristiques physiques ne sont disponibles que si une imprimante est ouverte (connectée à KGF.dll). Et donc, une page cide est automatiquement mise à disposition. Si tu n'imprimes rien, la page blanche s'imprime alors telle qu'elle est. Mais à quo bon voiloir connaître les informations sur les dimensions et les résolutions su l'on ne veut pas imprimer ? Ca n'a pas de sens. La suite "normale" des opérations est: 1. choisir l'imprimante 2. choisir l'orientation (portrait ou paysage, portrait étant le défaut). Impérativement à ce moment. 3. connecter l'imprimante 4. demander les détails physiques (dimensions, résolution, ...) et les mémoriser - ces informations ne changeront pas durant la session d'impression. 5. remplir la première page 6. tant qu'il y a d'autres pages à imprimer: éjecter la page en cours et imprimer la page suivante 7. fermer l'imprimante Si tu dis: - Citation :
- Quand je prends simplement les deux dont j'ai besoin, pas de résultat.
cela montre que tu n'as pas connecté l'imprimante. La preuve: dans ce cas, il n'y a pas de page blanche... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 20:16 | |
| J'adopte tout de suite la fonction qui donne la liste des imprimantes installées et le nom de l'imprimante par défaut, super, et rapide. Dans mes subs ci-dessus il manque le DLL_OFF à la fin. Effectivement il se crée une impression 'blanche', je dois avoir quelque part un truc pour vider cette file d'attente inutile... (si l'imprimante est éteinte).
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 23 Mai 2021 - 21:32 | |
| Mon but est d'avoir un picture de taille convenable pour l'impression Si je fais un dessin sur un picture de 200x200 avec une imprimante en 360dpi comme la mienne ou 600dpi comme les votres, je ne vous dis pas la taille ridicule une fois imprimé. Récupéré la résolution me permet de calculer une taille du picture correct pour une impression disons...lisible. Mais si c'est comme cela que ca fonction, je prends comme çà. Je vais noté le 'protocole' (c'est un mot à la mode en ce moment) pour mes trous de mémoire. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Kgf et Imprimante Dim 23 Mai 2021 - 21:41 | |
| 360 dpi ça te fait une image imprimée maxi de 2976 x 4209 pixels sur une page A4 si je compte bien... | |
| | | Contenu sponsorisé
| Sujet: Re: Kgf et Imprimante | |
| |
| | | | Kgf et Imprimante | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |