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 |
|
|
| qui peut résoudre mon prb | |
| | Auteur | Message |
---|
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: qui peut résoudre mon prb Jeu 16 Nov 2017 - 9:23 | |
| bjr qui pourrais me résoudre mon probleme le source fonctionne bien au 1er click mais au click suivant les fenêtre sont vides pourquoi? ensuite comment je peut faire pour imprimer cette image? proposé moi un source pour ouvrir la boite de dialogue de print et de l'imprimer par la suite sans utilisé cmd.exe si possible merci pour vos réponse et soutien - Code:
-
Label imprim button 1 on_click 1,imprim end imprim: If Object_Exists(3)=0 form 3 End_If show 3 Image 2 2d_image_copy 2,10,0,100,100 2d_Target_is 3 2d_image_paste 2,0,0 delete 2 return bonne journée! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: qui peut résoudre mon prb Jeu 16 Nov 2017 - 9:36 | |
| Premier élément de réponse: Lors du premier clic, l'image est chargée oar une copie de l'image de la form 0. Lors des clics suivants, la form 3 existe déjà, et même si tu la "supprimes" par la croix rouge, elle continue d'exister. La preuve: fais un SHOW 3 après l'avoir fermé par la croix rouge, et elle reviendra... Voici la solution: supprimer la form 3 chaque fois, comme ceci: - Code:
-
Label imprim button 1 on_click 1,imprim end imprim: 2d_target_is 0 if object_exists(3)=1 then delete 3 form 3 show 3 Image 2 2d_target_is 0 2d_image_copy 2,10,0,100,100 2d_Target_is 3 2d_image_paste 2,0,0 delete 2 return Second élément de réponse: Panoramic, à ce jour, n'a pas de commandes ou fonctions gérant l'impression. En attendant l'arrivée de ces fonctionnalités, tu peux utiliser KGF.dll. Regarde la doc dans la section "Gestion des impressions". Il y a une doc en ligne, et la section adéquate est ici: http://klauspanoramic.esy.es/GestiondesimpressionsPrintermana.html#Print_FR | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: qui peut résoudre mon prb Jeu 16 Nov 2017 - 11:48 | |
| bonjour klaus merci pour avoir résolu mon prb par contre je suis coincé a l'imprante - Code:
-
Dll_On "Kgf.Dll" res% = DLL_call2("SelectWindowsPrinter",adr(PrintName$),len(PrintName$)) res% = DLL_call6("PrinterFunction",7,adr(PrintHdl%),adr(CanHdl%),1,Width_Client(3),Height_Client(3)) res% = DLL_call4("PrinterManager",5,adr(PrintHdl%),adr(CanHdl%),1) Dll_Off
une précision je n'ai pas d'imprimante il me donne comme nom "microsoft print to pdf" et au cas j'en aurais une comment doit-je faire? le programe se plant | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: qui peut résoudre mon prb Jeu 16 Nov 2017 - 12:28 | |
| Bjr Marc37 Quand tu "pastes" une image sur le form 3, celle-ci s'efface si tu déplaces un autre form par dessus le form 3. Il faut ajouter un "picture": - Code:
-
Label imprim button 1 on_click 1,imprim end imprim: If Object_Exists(3)=0 form 3 : left 3,100 End_If show 3 Image 2 2d_image_copy 2,10,0,100,100 if object_exists(4)=0 then picture 4 : parent 4,3 : full_space 4 color 4,236,233,216 :' efface 2d_Target_is 4 2d_image_paste 2,0,0 delete 2 2d_Target_is 0 return | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: qui peut résoudre mon prb Jeu 16 Nov 2017 - 13:19 | |
| merci silverman
ma 1ere question est résolu
"Bjr Marc37" je n'suis pas Marc 37 lol manque pour l'imprimer! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: qui peut résoudre mon prb Jeu 16 Nov 2017 - 13:29 | |
| @Pascal10000: Le code que tu donnes, est vraiment trop limité et incomplet. On ne voit pas ce qui est chargé dans les variables, et de toutes façons, tu décharges la DLL avant de lancer la fonction de "fin d'impression", donc rien n'est imprimé, l'imprimante (si elle a été ouverte !) reste ouverte et le programme se plante.
Poste stp un code complet, exploitable, pour qu'on puisse reproduire le problème et apporter une solution. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: qui peut résoudre mon prb Jeu 16 Nov 2017 - 13:46 | |
| je sais que c'est incomplet
c pour compléter la suite du source si dessus et je m'y perd pour finalisé le code merci d'avance
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: qui peut résoudre mon prb Jeu 16 Nov 2017 - 14:35 | |
| Je ne vais pas faire le programme pour toi - ce ne serait pas très productif. Mais je te donne deux éléments de réflexion: 1. la liste des fonctions et opérations, avec l'ordre dans lequel il faut les utiliser (cherche la docimentation de chaque fonction dans KGF.chm ou dans la doc en ligne indiquée plus haut): - Code:
-
' fonctions de gestion d'imprimante, ' classées par ordre d'utilisation:
' PrinterManagerOrientation (0) ' PrinterManagerCopies (0) ' PrinterManagerTitle (0)
' GetPrinterCount (x) ' SelectWindowsPrinter (x)
' PrinterManagerStartDoc (1)
' PrinterManagerNewPage (2) ' PrinterManagerReset (2) ' PrinterPrintText (2) ' PrinterDrawArc (2) ' PrinterFunctionText (2) ' PrinterFunctionForm (2) ' PrinterFunctionFlood (2) ' PrinterFunctionRelativePosition (2) ' PrinterFunctionAbsolutePosition (2) ' PrinterFunctionStyle (2) ' PrinterFunctionColor (2) ' PrinterFunctionImage (2) ' PrinterFunctionGetMetrics (2) ' PrinterFunctionGetValues (2) ' PrinterManagerEndDoc (3) Et voici un programme de démo opérationnel: - Code:
-
' tutoriel_fonctions_impression.bas
' === programme principal, création de l'environnement Panoramic labels() constantes() variables() donnees() form0() menu() GUI() initialisations() end
' === procédures pour le programme principal sub labels() label imprimer3, sortir, debut_4, change_couleur, appliquer, ejecter label charger_image, imprimer4 end_sub
sub constantes() end_sub
sub variables() dim no% : ' variable interne pour la création de nouveaux objets dim no1%, no2% : ' variables internes pour la création du menu dim printer_x%, printer_y% : ' mémorisation de la position d'impression dim no_page_1%, no_page_2% : ' numéros d'objet des containers des pages 1 et 2 dim no_debut_4% : ' numéro d'objet du bouton "Début Etape 4" dim no_text% : ' numéro d'objet du texte à imprimer en page 1 dim no_x%, no_y% : ' numéros d'objet pour la position du texte en page 1 dim no_police% : ' numéro d'objet du nom de police du texte en page 1 dim no_gras%, no_italique%, no_souligne%, no_barre% : ' options du texte dim no_rouge%, no_bleu%, no_vert% : ' couleurs du texte dim no_couleur% : ' picture de visualisation de la couleur du texte dim no_taille% : ' taille de la police du texte dim attrib$ : ' pour construire les attributs pour PrinterPrintText en page 1 dim R%, G%, B%, X%, Y%, T% : ' pour paramètres pour PrinterPrintText en page 1 dim no_open% : ' numéro d'objet du open_dialog pour trouver une image dim s$ : ' variable de travail end_sub
sub donnees() end_sub
sub form0() full_space 0 caption 0,"Tutoriel pour l'utilisation des fonctions de gestion d'impression" end_sub
sub menu() no% = no% + 1 : main_menu no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% : caption no%,"Fichiers" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Imprimer Etape 3" on_click no%,imprimer3 no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-" no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"sortir" on_click no%,sortir
end_sub
sub GUI() no% = no% + 1 : button no% : no_debut_4% = no% top no%,40 : left no%,10 : width no%,130 caption no%,"Début Etape 4" : on_click no%,debut_4 no% = no% + 1 : container no% : no_page_1% = no% : inactive no% top no%,10 : left no%,150 : width no%,800 : height no%,300 caption no%,"Page 1" no% = no% + 1 : edit no% : parent no%,no_page_1% : no_text% = no% top no%,20 : left no%,20 : width no%,380 no% = no% + 1 : alpha no% : parent no%,no_page_1% s$ = "A l'aide de ce formulaire, préparez une ligne de texte."+chr$(13)+chr$(10) s$ = s$ + "Puis, utilisez le bouton Appliquer pour l' placer."+chr$(13)+chr$(10) s$ = s$ + "Répétez cela à volonté,"+chr$(13)+chr$(10) s$ = s$ + "puis utilisez Ejecter pour passer à la page suivante." top no%,60 : left no%,20 : caption no%,s$ no% = no% + 1 : alpha no% : parent no%,no_page_1% top no%,20 : left no%,440 : caption no%,"X:" no% = no% + 1 : edit no% : parent no%,no_page_1% : no_x% = no% top no%,20 : left no%,460 : width no%,60 no% = no% + 1 : alpha no% : parent no%,no_page_1% top no%,20 : left no%,560 : caption no%,"Y:" no% = no% + 1 : edit no% : parent no%,no_page_1% : no_y% = no% top no%,20 : left no%,580 : width no%,60 no% = no% + 1 : combo no% : parent no%,no_page_1% : no_police% = no% top no%,50 : left no%,440 : width no%,200 : font_names_load no% no% = no% + 1 : check no% : parent no%,no_page_1% : no_gras% = no% top no%,80 : left no%,440 : caption no%,"Gras" no% = no% + 1 : check no% : parent no%,no_page_1% : no_italique% = no% top no%,100 : left no%,440 : caption no%,"Italique" no% = no% + 1 : check no% : parent no%,no_page_1% : no_souligne% = no% top no%,120 : left no%,440 : caption no%,"Souligné" no% = no% + 1 : check no% : parent no%,no_page_1% : no_barre% = no% top no%,140 : left no%,440 : caption no%,"Barré" no% = no% + 1 : alpha no% : parent no%,no_page_1% top no%,80 : left no%,540 : caption no%,"R:" no% = no% + 1 : scroll_bar no% : parent no%,no_page_1% : no_rouge% = no% top no%,80 : left no%,560 : min no%,0 : max no%,255 : position no%,0 width no%,200 : on_change no%,change_couleur no% = no% + 1 : alpha no% : parent no%,no_page_1% top no%,110 : left no%,540 : caption no%,"G:" no% = no% + 1 : scroll_bar no% : parent no%,no_page_1% : no_vert% = no% top no%,110 : left no%,560 : min no%,0 : max no%,255 : position no%,0 width no%,200 : on_change no%,change_couleur no% = no% + 1 : alpha no% : parent no%,no_page_1% top no%,140 : left no%,540 : caption no%,"B:" no% = no% + 1 : scroll_bar no% : parent no%,no_page_1% : no_bleu% = no% top no%,140 : left no%,560 : min no%,0 : max no%,255 : position no%,0 width no%,200 : on_change no%,change_couleur no% = no% + 1 : picture no% : parent no%,no_page_1% : no_couleur% = no% top no%,20 : left no%,670 : height no%,50 : width no%,90 : color no%,0,0,0 no% = no% + 1 : alpha no% : parent no%,no_page_1% top no%,190 : left no%,440 : caption no%,"Taille:" no% = no% + 1 : edit no% : parent no%,no_page_1% : no_taille% = no% top no%,190 : left no%,500 : width no%,500 : text no%,12 no% = no% + 1 : button no% : parent no%,no_page_1% top no%,220 : left no%,440 caption no%,"Appliquer" : on_click no%,appliquer no% = no% + 1 : button no% : parent no%,no_page_1% top no%,250 : left no%,440 caption no%,"Ejecter" : on_click no%,ejecter
no% = no% + 1 : container no% : no_page_2% = no% : inactive no% top no%,320 : left no%,150 : width no%,800 : height no%,300 caption no%,"Page 2" no% = no% + 1 : open_dialog no% : no_open% = no% no% = no% + 1 : alpha no% : parent no%,no_page_2% s$ = "A l'aide du bouton Image, chargez une image."+chr$(13)+chr$(10) s$ = s$ + "Puis, utilisez le bouton Imprimer pour lancer l'impresssion." top no%,60 : left no%,20 : caption no%,s$ no% = no% + 1 : button no% : parent no%,no_page_2% top no%,20 : left no%,440 caption no%,"Image" : on_click no%,charger_image no% = no% + 1 : button no% : parent no%,no_page_2% top no%,50 : left no%,440 caption no%,"Imprimer" : on_click no%,imprimer4
end_sub
sub initialisations() KGF_initialize("KGF.dll") end_sub
' === routines évènement
' ici, on crée l'impression de l'étape 3 imprimer3: PrinterManagerStartDoc() ' imprimer le texte en police Arial taille 12, couleur bleue, ' en position (300,400), en gras et italique printer_x% = 300 printer_y% = 400 PrinterPrintText("Ceci est mon texte","Arial","GIAXAY",0,0,255,12,printer_x%,printer_y%) PrinterManagerEndDoc() return ' ici, on sort du programme sortir: terminate ' ici, on débute l'étape 4 (page 1) debut_4: inactive no_debut_4% active no_page_1% PrinterManagerStartDoc() return ' ici, on change la couleur du texte en étape 4 (page 1) change_couleur: color no_couleur%,position(no_rouge%),position(no_vert%),position(no_bleu%) return ' ici, on applique le texte avec ses attributs à la page appliquer: if numeric(text$(no_x%))=0 message "Coordonnée X invalide" return end_if if numeric(text$(no_y%))=0 message "Coordonnée Y invalide" return end_if if numeric(text$(no_taille%))=0 message "Coordonnée Y invalide" return end_if X% = val(text$(no_x%)) Y% = val(text$(no_y%)) T% = val(text$(no_taille%)) attrib$ = "AXAY" : ' pour le positionnement en absolu if checked(no_gras%)=1 then attrib$ = attrib$ + "G" : ' gras ? if checked(no_italique%)=1 then attrib$ = attrib$ + "I" : ' italique ? if checked(no_souligne%)=1 then attrib$ = attrib$ + "U" : ' souligné ? if checked(no_barre%)=1 then attrib$ = attrib$ + "S" : ' barré ? R% = position(no_rouge%) G% = position(no_vert%) B% = position(no_bleu%) PrinterPrintText(text$(no_text%),text$(no_police%),attrib$,R%,G%,B%,T%,X%,Y%) return
' ici, on éjecte la page 1 et on passe à la page 2 en étape 4 ejecter: PrinterManagerNewPage() inactive no_page_1% active no_page_2% return ' ici, on charge une image du disque charger_image: s$ = file_name$(no_open%) return
' ici, on lance l'impression en étape 4 imprimer4: ' on construit d'abord la page 2 ' positionner en absolu = (200,150) PrinterFunctionAbsolutePosition(400,150) ' dessiner un rectangle de 800x200 pixels au coins arrondis sur 25 pixels PrinterFunctionForm(1,800,200,25) ' remplir le rectangle de bleu (couleur RGB) PrinterFunctionFlood(0,200,200,255) ' positionner en absolu = (430,250) PrinterFunctionAbsolutePosition(410,240) ' imprimer un texte dans ce rectangle PrinterFunctionText("Texte dans rectangle",1) ' positionner en absolu = (300,550) PrinterFunctionAbsolutePosition(300,550) ' dessiner un rectangle de 800x600 pixels au coins arrondis sur 10 pixels PrinterFunctionForm(1,800,600,10) ' remplir le rectangle de bleu (couleur RGB) PrinterFunctionFlood(0,200,200,255) ' positionner en absolu = (430,250) PrinterFunctionAbsolutePosition(320,570) ' insérer l'image sélectionnée PrinterFunctionImage(s$,760,560) ' puis on ferme l'édition ce qui imprime tout PrinterManagerEndDoc() inactive no_page_2% active no_debut_4% return ' === lien lers KGF_SUB.bas #INCLUDE "KGF_SUB.bas"
Avec ça, tu devrais avoir ce qu'il faut pour concevoir ton propre code. Si tu as encore des difficultés, alors poste le code complet, exécutable directement dans Panoramic_Editor, afin de pouvoir reproduire le problème. | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: qui peut résoudre mon prb Jeu 16 Nov 2017 - 15:30 | |
| merci klaus avec ton code je devrais m'en sortir à préqent et tester son fonctionnement | |
| | | Contenu sponsorisé
| Sujet: Re: qui peut résoudre mon prb | |
| |
| | | | qui peut résoudre mon prb | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |