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 |
|
|
| Formatage (page A4) | |
| | |
Auteur | Message |
---|
Invité Invité
| Sujet: Re: Formatage (page A4) Jeu 21 Fév 2013 - 18:31 | |
| Je l'ai eu aussi, avec l'extention et l'imprimante thermique. Je l'ai gardé 1 mois que j'ai vendu pour acheter un PET 2001 de commodore, de la famille de 6502 cadencé à 1 mhz. C'est d'ailleurs sur celui-ci que le fer à soudé à cramé. l était beau le mien |
| | | maelilou
Nombre de messages : 180 Age : 76 Localisation : Ardennes françaises Date d'inscription : 02/05/2012
| Sujet: Re: Formatage (page A4) Jeu 21 Fév 2013 - 18:32 | |
| Et j'avais comme livre de chevet le bouquin de Rodnay Zacks... Mais la toute première programmation que j'ai faite c'était sur des tores de ferrite. Puis sur cartes perforées 80 colonnes... Et quand maintenant les gosses ne s'étonnent plus de rien, j'aimerais remonter le temps avec eux et leur montrer la misère qu'on avait | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Formatage (page A4) Jeu 21 Fév 2013 - 21:45 | |
| Je ne me lasse pas de revoir des photos de mon premier ordi (l'Hector HRX), ça me rappelle toujours les heures passées à recopier les pages de code d'Hebdogiciel pour faire une jeu de 'petanque' ou un space invander rempli de sprites fait à partir de centaines de lignes de data injectées dans la mémoire à partir de PEEK et de POKE et la jolie musique du lecteur de cassette quand on sauvegardait tout ça (ou qu'on le lisait) en croisant les doigts pour que ça passe bien
Dernière édition par Jicehel le Jeu 21 Fév 2013 - 23:25, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Formatage (page A4) Jeu 21 Fév 2013 - 23:15 | |
| Je vois que je ne suis pas tout seul à avoir connu le moyen-âge ! mon Dieu, comme le temps passe (vite) ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 21 Fév 2013 - 23:54 | |
| Mon premier ordi ressemblait à celui ci : les disquettes avait plus de mémoire que le disque dur.... (mac os) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 0:03 | |
| Juste pour info: le tuto sur mes fonctions de gestion d'imprimante avance... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 22 Fév 2013 - 0:30 | |
| Super Klaus ! Je sens que je vais refaire un stock de doliprane dans peu de temps... J'ai fait 2 propositions de commande, j'aimerai avoir ton sentiment sur ces sujets -"Pause_Click N Pause_Click_Off N" -"Extension Checked()" | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 9:58 | |
| @Ygeronimi: pour le click, j'ai donné la solution dans un autre dil de discussion: utilise OFF_CLICK n, puis plus tard, refais ON_CLICK n,nom_de_label pour l'extension de checked(), je pense que Jack a répondu... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 11:57 | |
| Voici, sans prétention, un petit tuto montrant comment on se sert des fonctions de gestion d'imprimante de KGF.dll. Ce tuto n'a pas vocation à montrer toutes les fonctions. Mais il explique comment faire une édition multi-pages, avec du texte, du dessin et des images. Tutoriel pour les fonctions d'impression de KGF.dllKGF.dll met à disposition un ensemble de fonctions permettant de gérer l'impression. Ces fonctions ont de multiples paramètres, et l'ordre dans lequel elles sont appelées, a une importance capitale. Pour faciliter leur utilisation, il est fortement conseillé d'utiliser les procédures de KGF_SUB.bas. Elles "habillent" les fonctions de la DLL de façon plus intuitive et permettent d'écrire des programmes plus lisibles. A travers tout ce tutoriel, l'accent sera mis sur les procédures de KGF_SUB.bas. Le but de ce tutoriel est de créer un programme montrant l'utilisation des fonctions de gestion d'impression, étape par étape, avec un code fonctionnel et vérifiable à chaque étape. Etape 1 - création de la structure initiale du programmeNous allons créer un "squelette" de programme, utilisable d'ailleurs pour tout programme Panoramic. A ce squelette, nous allons accrocher les différents éléments permettant de gérer l'impression. - 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() end_sub
sub constantes() end_sub
sub variables() end_sub
sub donnees() end_sub
sub form0() end_sub
sub menu() end_sub
sub GUI() end_sub
sub initialisations() end_sub
' === lien lers KGF_SUB.bas #INCLUDE "KGF_SUB.bas"
Clairement, ce programme ne fait rien pour le moment. Mais il donne accès à KGF_SUB.bas et permet de gérer les différents éléments de façon ordonnée. Etape 2 - personnalisation de la structure initiale du programmeNous allons maintenant adapter ce squelette pour qu'il puisse servir de programme de test d'impression. Pour cela, nous allons configurer la form 0, lui donner un menu et quelques objets. Pour créer tout objet Panoramic, il faut spécifier un numéro d'objet. Ici, nous allons employer une technique permettant de revenir plus tard sur le programme en insérant de nouveaux objets sans avoir à se soucier des numéros d'objets disponibles. Pour cela, les objets seront créés par un numéro incrémenté de 1 pour chaque nouvel objet, et on mémorise dans des variables les numéros des objets que l'on doit accéder ultérieurement. Ces noms de variables doivent être sufffisamment longs et explicites pour définir clairement le rôle de l'objet. - 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 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 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() 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
' === lien lers KGF_SUB.bas #INCLUDE "KGF_SUB.bas"
Etape 3 - Une première impressionBon, assez de généralités. On va faire une première impression, très simple. Plus tard, nous allons ajouter d'autres possibilites au programme. Pour cette fois, on va juste imprimer une seule ligne de texte et vérifier le résultat. Pour cela, on utilise 3 procédures de KGF_SUB: - PrinterManagerStartDoc pour ouvrir l'imprimante et initialiser l'impression - PrinterPrintText pour imprimer un texte - PrinterManagerEndDoc pour fermer l'impression et envoyer le document sur l'imprimante Il nous faut aussi 2 variables pour mémoriser l'adresse x,y de la position d'impression. Ce seront les variables printer_x%, printer_y%. - 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 imprimer, sortir 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 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" on_click no%,imprimer 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() end_sub
sub initialisations() KGF_initialize("KGF.dll") end_sub
' === routines évènement
' ici, on crée l'impression imprimer: 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
' === lien lers KGF_SUB.bas #INCLUDE "KGF_SUB.bas"
On voit immédiatement plusieurs points: 1. une édition doit être "ouverte" (procedure PrinterManagerStartDoc) 2. on peut envoyer un texte n'importe où, au pixel près, en précisant police, taille, couleur et attributs (procédure PrinterPrintText) 3. pour lancer l'impression, il faut "fermer" l'édition (procédure PrinterManagerEndDoc) ce qui a pour effet d'envoyer le document constitué à l'imprimante. Il en découle immédiatement que les fonctions d'impression n'agissent pas directement sur l'imprimante, mais plutôt sur une image interne, le "canvas" de l'édition. Ce canvas est un grand tableau en mémoire, contenant chaque pixel avec ses attributs, comme une bitmap. Et les fonctions d'impression agissent sur ce canvas, permettant ainsi de constituer des éditions complexes. Mais en fait, comment faire plusieurs pages ? Car tant qu'on n'éjecte pas la page en cours de constitution, tout se passe dans le canvas de la même page. On peut utiliser bien sûr EndDoc pour imprimer la page en cours, puis StartDoc pour lancer une nouvelle édition, etc. Mais c'est trop lourd. C'est pourquoi il y a la procédure PrinterManagerNewPage(). Elle imprime la page en cours comme la procédure PrinterManagerEndDoc, mais garde l'impression ouverte et présente un canvas vierge aux traitements suivants. Et la fonction PrinterManagerReset(mode%) permet d'annuler tout ou partie d'une édition: 0=toute l'édition, rien ne sera imprimé, et 1=la page actuellement en cours sera effacée et redeviendra vierge. Mais attention: une fois qu'une page est éjectée par PrinterManagerNewPage et qu'on est passé sur la page suivante, on ne peut plus supprimer sélectivement cette page ! On ne peut que supprimer l'édition complète. Etape 4 - Construction d'un projet d'édition plus complexeNous allons faire une édition de 2 pages. La première contiendra plusieurs textes. Pour chaque texte, on pourra saisir le texte, choisir la police, la taille, la couleur et les attributs. Des objets seront placés dans la form 0 pour cela, avec un bouton de validation qui "imprime" le texte préparé. Un autre bouton permettra de passer à la page suivante. On pourra cocher les cases des attributs, choisir la police dans une combo et choisir la couleur par des scroll_bar. La seconde contiendra deux zones colorées, Dans la première, on imprimera un texte prédéfini, et dans la seconde, on placera une image ou photo sélectionnée dans un dossier sur disque. Un bouton permettra de valider l'édition complète. Le but du tuto n'étant pas d'apprandre à saisir ces informations, mais à gérer l'impression, je fournis ici le programme complet, avec les parties impression complètement documentées: - 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"
Etape 5 - aller plus loinIl y a de multiples fonctions supplémentaires. Un bon conseil: lisez attentivement l'aide de KGF.dll ou l'aide de KGF_SUB.bas. Il y a de multiples informations et des exemples pour chaque fonction. On peut, entre autres: - choisir l'imprimante et définir l'imprimante par défaut - connaître le nombre d'imprimantes installées - dessiner des lignes, rectangles, éllipses, arcs de cercles - positionner le point d'impression en absolu ou en relatif - changer tous les attributs d'impression (police, couleur, taille, ...) - changer couleur d'avant et arrière-plan, épaisseur du trait, ... - retourner des informations physiques de la feuille - retourner des informations sur les paramétrages actifs Toutes ces fonctions sont accessibles par des appels directs de fonctions dans KGF.dll, ou par l'utilisation de procédures de KGF_SUB.bas, plus simples à mettre en oeuvre. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 22 Fév 2013 - 14:09 | |
| Souci à l'étape 4 Tu expliques le placement du texte sur la feuille mais, pourrais tu donner les dimensions d'une feuille A4 ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 14:32 | |
| le plantage vient du fait que ton imprimante est configurée à plus de 300 ppm (600 ppm par exemple). Si tu changes cela dans les propriétés de l'imprimante (qualité d'impression), ça passera.
Et puis, toutes les imprimantes ne sont pas capable de gérer le remplissage. Mets simplement les lignes 221 et 231 en commentaire.
Tu peux utiliser la fonction PrinterFunctionGetMetrics pour avoir toutes les informations de dimension. Regarde dans le fichier d'aide... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 22 Fév 2013 - 14:43 | |
| Ok ! j'ai compris le pourquoi du comment... Je viens de voir qu' effectivement ma question sur les dim d'un feuille A4 était stupide puisque ces dimensions changent en fonction de la résolution Dpi 2480 x 3508 pixels / pouces en 300 dpi 1654 x 2339 pixels / pouces en 200 dpi 827 x 1170 pixels / pouces en 100 dpi 596 x 842 pixels / pouces en 72 dpi la source icimaintenant il va falloir que je retrouve la résolution d'impression de mon imprimante... ...ca c'est une autre paire de manches. voir la modifier et là... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 22 Fév 2013 - 15:10 | |
| Impossible de savoir ou de modifier avec des dimensions la résolution de mon imprimante par son outils de configuration...GRRRRRRRR!!!!!!!!
Dernière édition par ygeronimi le Ven 22 Fév 2013 - 15:29, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 15:19 | |
| Click doit/propriétés sur l'imprimante. Voici e que ça fait chez moi: Je vais poster un petit code bientôt pour afficher toutes les caractéristiques numériques de la page. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 15:38 | |
| Et voici un petit code pour afficher les infos de la page de l'imprimante: - Code:
-
' infos_imprimante.bas
dim R%, G%, B%
memo 1 : top 1,10 : left 1,10 : width 1,550 : height 1,400 font_name 1,"Courier"
KGF_initialize("KGF.dll")
SelectWindowsPrinter() PrinterManagerStartDoc()
item_add 1,"Paramètres de la page d'impression:" PrinterFunctionGetMetrics(1) item_add 1,"PHYSICALOFFSETX décalage horizontal en pixel: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(2) item_add 1,"PHYSICALOFFSETY décalage vertical en pixel: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(3) item_add 1,"PHYSICALWIDTH largeur totale en pixel: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(4) item_add 1,"PHYSICALHEIGHT hauteur totale en pixel: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(5) item_add 1,"LOGPIXELSX résolution horizontale en pixels/pouce: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(6) item_add 1,"LOGPIXELSY résolution verticale en pixels/pouce: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(7) item_add 1,"HORZRES largeur utile en pixels: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(8) item_add 1,"VERTRES hauteur utile en pixels: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(9) item_add 1,"HORZSIZE largeur utile en milimètres: "+str$(PrinterFunctionGetMetrics%) PrinterFunctionGetMetrics(10) item_add 1,"VERTSIZE hauteur utile en milimètres: "+str$(PrinterFunctionGetMetrics%)
item_add 1,"" item_add 1,"Autres paramètres:" PrinterFunctionGetValues(1) item_add 1,"abscisse (x) de la position active: "+str$(PrinterFunctionGetValues%) PrinterFunctionGetValues(2) item_add 1,"ordonnée (Y) de la position active: "+str$(PrinterFunctionGetValues%) PrinterFunctionGetValues(3) B% = bin_and(PrinterFunctionGetValues%,255) G% = bin_and(int(PrinterFunctionGetValues%/256),255) R% = int(int(bin_and(PrinterFunctionGetValues%,255*256*256)/256)/256) item_add 1,"couleur de la police: "+str$(R%)+","+str$(G%)+","+str$(B%) PrinterFunctionGetValues(4) B% = bin_and(PrinterFunctionGetValues%,255) G% = bin_and(int(PrinterFunctionGetValues%/256),255) R% = int(int(bin_and(PrinterFunctionGetValues%,255*256*256)/256)/256) item_add 1,"couleur du fond: "+str$(R%)+","+str$(G%)+","+str$(B%) PrinterFunctionGetValues(5) B% = bin_and(PrinterFunctionGetValues%,255) G% = bin_and(int(PrinterFunctionGetValues%/256),255) R% = int(int(bin_and(PrinterFunctionGetValues%,255*256*256)/256)/256) item_add 1,"couleur de dessin: "+str$(R%)+","+str$(G%)+","+str$(B%) PrinterFunctionGetValues(6) item_add 1,"taille de la police: "+str$(PrinterFunctionGetValues%) PrinterFunctionGetValues(7,"Bonjour") item_add 1,"largeur de [Bonjour]: "+str$(PrinterFunctionGetValues%) PrinterFunctionGetValues(8,"Bonjour") item_add 1,"hauteur de [Bonjour]: "+str$(PrinterFunctionGetValues%)
PrinterManagerReset(0) end
#INCLUDE "KGF_SUB.bas"
et pour mon HP psc 1315, voici ce qu'il affiche: Et comme tu peux voir, c'est du DIN A4: 210x297 mm !
Dernière édition par Klaus le Lun 25 Fév 2013 - 15:20, édité 4 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 15:47 | |
| Merci Klaus pour le tuto, je vais commencer par me l'imprimer pour l'avoir sous le coude.
Et merci aussi pour le petit utilitaire, ça peut toujours servir. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 15:53 | |
| Bonjour Klaus, Le petit code pour afficher les infos de l'imprimante, c'est très utile. Ça va m'aider à décortiquer ton tuto. Merci beaucoup. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 22 Fév 2013 - 15:57 | |
| Je suis sous windows 7 et quand je vais dans les propriétés de mon imprimante, il me renvoit sur gestionnaire de configuration propre à l' imprimante. ( Epson stylus sx130 ) je n'ai pas le même affichage que toi... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 22 Fév 2013 - 16:04 | |
| J' avais pas vu ton code pour récupérer les données de l'imprimante je teste tout de suite ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 16:05 | |
| Comment cela se présente-il ? J'ai aussi une Stylus, et voici ce qu'il m'affiche: Dans ce cas, c'est la liste des icônes en "Qualité d'impression" qui détermine le nombre de pixels. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 22 Fév 2013 - 16:08 | |
| Et voilà le résultat : | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 16:18 | |
| Donc, avec 360 pixels, ta résolution est trop forte. Essaie de baisser la qualité d'impression, dans le gestionnaire. Il n'affiche pas quelque chose comme ce que je viens de poster ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 22 Fév 2013 - 16:30 | |
| Non, il m'affiche le gestionnaire propre à l'imprimante d'epson. Je ne peux pas régler la résolution. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Formatage (page A4) Ven 22 Fév 2013 - 16:40 | |
| Impossible, Ygeronimi. Il y a certainement un bouton ou un onglet genre Options, Avancé, etc. Peux-tu poster une copie d'écran de ce gestionnaire ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| | | | Contenu sponsorisé
| Sujet: Re: Formatage (page A4) | |
| |
| | | | Formatage (page A4) | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |