FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille navale SM
demande explication KGF pour imprimer en mm Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
demande explication KGF pour imprimer en mm Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
demande explication KGF pour imprimer en mm Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
demande explication KGF pour imprimer en mm Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
demande explication KGF pour imprimer en mm Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
demande explication KGF pour imprimer en mm Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
demande explication KGF pour imprimer en mm Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
demande explication KGF pour imprimer en mm Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
demande explication KGF pour imprimer en mm Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
demande explication KGF pour imprimer en mm Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
demande explication KGF pour imprimer en mm Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
demande explication KGF pour imprimer en mm Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
demande explication KGF pour imprimer en mm Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
demande explication KGF pour imprimer en mm Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
demande explication KGF pour imprimer en mm Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

 

 demande explication KGF pour imprimer en mm

Aller en bas 
3 participants
AuteurMessage
lepetitmarocain




Nombre de messages : 332
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

demande explication KGF pour imprimer en mm Empty
MessageSujet: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyMer 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
Revenir en haut Aller en bas
lepetitmarocain




Nombre de messages : 332
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyVen 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

Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyVen 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 ?

PS
A 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éformation
Autant 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...)
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyVen 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


demande explication KGF pour imprimer en mm Lmp5_b10


Bonne programmation !
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyVen 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.
Revenir en haut Aller en bas
lepetitmarocain




Nombre de messages : 332
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptySam 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
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyDim 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
Revenir en haut Aller en bas
lepetitmarocain




Nombre de messages : 332
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyMar 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.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyMar 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 ...?
Revenir en haut Aller en bas
lepetitmarocain




Nombre de messages : 332
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyVen 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.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptySam 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
Revenir en haut Aller en bas
lepetitmarocain




Nombre de messages : 332
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyLun 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
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyLun 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 !
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyMar 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
' =============================================================================
Revenir en haut Aller en bas
lepetitmarocain




Nombre de messages : 332
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyJeu 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
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm EmptyJeu 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 !
Revenir en haut Aller en bas
Contenu sponsorisé





demande explication KGF pour imprimer en mm Empty
MessageSujet: Re: demande explication KGF pour imprimer en mm   demande explication KGF pour imprimer en mm Empty

Revenir en haut Aller en bas
 
demande explication KGF pour imprimer en mm
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» demande pour recuperer un text speciale
» Demande pour Jack concernant PanExpress
» utiliser mozilla ou ie comme passerelle pour imprimer
» imprimer
» demande d'aide pour formulaire

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: