Page 1 sur 1

Fred : problème de dimension des pages d'imprimantes

Publié : sam. 23/nov./2019 12:02
par Ulix
Bonjour a tous, et
Bonjour (ou autre chose) a Fred !

Ce post s'adresse avant tout a Fred, mais vous pouvez test vos imprimantes et me dire si
avez le même résultat que moi et me souffler une solution. :lol:

Je possède 2 imprimantes (une laser couleur, une jet d'encre) et une imprimante virtuel PDF
fourni par mon serveur d'impression (Cups).

Mon imprimante par défaut est la jet d'encre Epson ET2700.

J'édite des documents sur l'une ou l'autre en fonction des besoins (dans mon interface
d'édition, j'ai un bouton "impression directe", donc avec DefautPrinter, ou "impression choisi"
en passant par PrintRequester) !

Mais je n'ai jamais compris pourquoi j'ai une différence d'impression entre DefautPrinter et
PrintRequester pour le même document sur la même imprimante ? :x

Je viens de m'apercevoir que les dimensions ne sont pas les mêmes ! :(
(Vous allez dire : Bien sur ..... !!)

Exemples exprimer en Points :

Avec DefautPrinter Avec PrintRequester
Epson ET2700 559*784 578*825
Sansung CLP312 559*784 570*816
Cups PDF 559*784 595*841


Trois remarques :

1) Les dimensions, avec PrinterRequester reflètent bien les différences entres les imprimantes
(même la virtuelle), jusque là : c'est normal !

2) DefautPrinter est en principe utilisé pour accéder directement a l'imprimante par défaut,
or je ne retrouve pas les mêmes dimensions (l'Epson utilisé avec DefautPrinter n'a pas les mêmes
dimensions de page, que si je l'utilise en passant par PrintRequester !!) Idem avec les autres.
Pourquoi, puisque c'est la même imprimante !!!

3) Toutes les imprimantes qui sont utilisés en passant par DefautPrinter ont les mêmes
dimensions de page ! C'est pas le cas avec PrinterRequester.
DefautPrinter agit un peu, comme une 4ème imprimantes avec ses propres dimensions !
Est-ce dû a un pilote, a mon Linux, a Cups ou a PureBasic ???

Comment harmoniser les impressions entre DefautPrinter et PrinterRequester (pour la
même imprimante) ? :oops:

Fred, explique moi pourquoi et que puis-je faire afin d'obtenir un résultat identique;
(mêmes dimensions quelque soit la façon d'accéder a l'imprimante) ?


Note :
Je vous est joint un bout de code pour tester vos imprimantes; rassurez-vous pas d'impression,
juste des feuilles blanches.
Activer le débugueur ! Par contre un peu de travail pour sélectionnez vos imprimantes
et les définir par défauts.
Le test consiste dans un 1er temps a tester l'(Impression directe) pour cela il faut définir une
imprimante par défaut, puis faire une impression, puis de passer a la suivante... etc.
Puis dans un 2ème temps a tester l'(Impression choisie), cette fois la Requester permettra
passer d'une imprimante a l'autre. Résultats dans le débugueur.

Dis moi si avez le même (Bug ! ? ou pas) que moi entre DefautPrinter et PrinterRequester
pour la même imprimante !

Code : Tout sélectionner



Enumeration 
#f1
#Option1
#Option2
#Bouton
EndEnumeration



Procedure TestImprimante()	
Protected NumImp.l

;	Ici test impression directe ou pas !
If  GetGadgetState(#Option1) = 1	;	Impression en utilisant DefautPrinter
										NumImp = DefaultPrinter() 
Else 									;	Impression en utilisant  PrintRequester() 
										NumImp =  PrintRequester() 
EndIf


If NumImp  And StartPrinting("Test") 
			
							;Initialisation dessin vectoriel sur la sortie imprimante
							If StartVectorDrawing(PrinterVectorOutput(#PB_Unit_Point))	
									
							Debug "Dimension (Larg X Haut) = " +StrD(VectorOutputWidth(),0) + "*"+StrD(VectorOutputHeight(),0)
										
							StopVectorDrawing()
				
							EndIf
StopPrinting()
EndIf

EndProcedure



If OpenWindow(#f1, 0, 0, 300, 250, "Exemple...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

		Debug "Impression avec 'DefautPrinter' " 
		Debug "Pensez a changer votre imprimante par défaut avant"
		Debug "chaque impression et de tester toutes vos imprimantes" 
		
		OptionGadget(#Option1,  30,  30,  100,  25, "Impression directe")
		OptionGadget(#Option2,  30,  60,  100,  25, "Impression choisie")	
   		ButtonGadget(#Bouton,	50,	 100, 200,  40, "Impression")
   
Repeat
Select WaitWindowEvent()
     
Case #PB_Event_Gadget
         	Select EventGadget()
           	
		Case #Option2	:	Debug "Impression avec la 'PrintRequester' "

		Case #Bouton :	TestImprimante()	
            EndSelect
            
 
Case #PB_Event_CloseWindow
						f1Quitter = 1
EndSelect
Until f1Quitter = 1

EndIf

Merci d'avance a tous ceux qui testerons !
Fred une réponse, ou un commentaire serait apprécié ! :P

Re: Fred : prôbleme de dimension des pages d'imprimantes

Publié : sam. 23/nov./2019 16:14
par MLD
Bonjour Ulix
Regarde sur le forum a MLD .J'ai fait i ly a déjà un moment un programme imprimante., Mais si tu est sous linux j'ai des doutes?
Je te confirme que les pilotes et spouleurs d'imprimantes sont quelque fois surprenant.
Bon courage.

Re: Fred : prôbleme de dimension des pages d'imprimantes

Publié : sam. 23/nov./2019 19:16
par omega
Bonsoir

Voici une méthode que j'utilise pour imprimer sur n'importe quel type d'imprimante (format papier A4) Il s'agit d'utiliser une fonction par centimètre en horizontale et verticale:

Code : Tout sélectionner

;------------ x,y sur imprimante --------------------------------------------------------
Procedure xcm(x.f)
result = x * (PrinterPageWidth()/21) ; 21cm A4
ProcedureReturn result
EndProcedure
    
;--------------------------------------------------------------------------------------------------
Procedure ycm(x.f)
result = x * (PrinterPageHeight()/29.7) ; 29,7cm A4
ProcedureReturn result
EndProcedure

;--------------------------------------------------------------------------------------------------
Procedure Imprimer()
If PrintRequester()
   If StartPrinting("Print-Doc")
      If StartDrawing(PrinterOutput())
         c1=xcm(3): c2=xcm(3.3) : c3=xcm(10): c4=xcm(18) 
         wrow=ycm(0.5)
         Box(c1, wrow+ycm(0.3), xcm(2.5), ycm(0.10),printcolor)
         Box(c1+xcm(12.5), wrow+ycm(0.3), xcm(2.5), ycm(0.10),printcolor)
         DrawText(c2, wrow, "2ème col: 3cm de G à D",printcol1,printcol2)
         wrow=wrow+ycm(1)
         DrawText(c3, wrow, "3ème col: 10 cm de g à d",printcol1,printcol2)
         StopDrawing()
      EndIf
    StopPrinting()
    EndIf
EndIf

Global c1,c2,c3,c4,wrow,printcol1,printcol2
printcol1=RGB(0, 0, 0)
printcol2=RGB(255, 250, 250)
Imprimer()
End
EndProcedure 
Je ne sais pas si cela pourrait vous être utile mais je l'espère pour vous

Re: Fred : prôbleme de dimension des pages d'imprimantes

Publié : dim. 24/nov./2019 10:37
par kernadec
bonjour Ulix
j avais fait un truc pour imprimer du papier millimétré que je viens de mettre à jour pour PB570
ce code permet permet d' adapter la largeur d'impression de l'imprimante...
j 'avais rencontré le problème avec des imprimantes de marques différentes
qui modifie la résolution d' impression selon leurs paramètres de format de page..
voilà si ça peut t'aider
https://www.purebasic.fr/french/viewtop ... 447#p84447

PS: pour avoir une impression d'une page millimétrée correspondante a ma règle je dois imprimer à 19,74 cm
pour avoir les bons millimètres sur 20,00cm :wink:
pour info mon imprimante est une Canon MG5550
pour la valeur 0.035 elle est le résultat de 21/600 = largeur page / largeur de ma fenêtre

Cordialement

Re: Fred : problème de dimension des pages d'imprimantes

Publié : lun. 25/nov./2019 17:58
par Ulix
Merci a vous trois de m'avoir répondu ! :lol:


Je n'ai pas de souci pour me positionné sur la feuille de papier.

Toutefois, se positionné a 50 (pixels ou mm ou Point) de largeur sur
une largeur 559 (avec DefautPrinter) ne donne pas le même rendu
que 595 (avec PrinterRequester).

Idem pour la hauteur !
Se positionné a 50 (pixels ou mm ou Point) de Hauteur sur 816
(avec DefautPrinter) ne donne pas le même rendu que 784 (avec PrinterRequester).

Mon problème c'est que DefautPrinter, ne renvoi pas la même dimension que
PrinterRequester avec la même imprimante ! :x

Avez vous test vos imprimantes pour voir, si sur la même imprimante vous avez les même dimensions avec DefautPrinter et PrinterRequester ?

Dite le moi, que je sache si cela viens de chez moi (Linux, pilote ou autre) ou si c'est un Bug ! :oops:

De plus il semble, que toutes les imprimantes qui sont utilisés en passant par DefautPrinter ont les mêmes dimensions de page !
Est-ce votre cas (enfin pour ceux qui ont plusieurs imprimantes ! ) ?


Merci d'avance pour vos tests :lol:

Re: Fred : problème de dimension des pages d'imprimantes

Publié : lun. 25/nov./2019 18:05
par Ollivier
Ce n'est pas une imprimante à 2 centimes la page couleur (papier+encre) ?

Re: Fred : problème de dimension des pages d'imprimantes

Publié : lun. 25/nov./2019 18:15
par Ulix
Non !
Comme je l'ai écrit dans mon 1er message, j'ai
-une laser couleur : Samsug CLP365 (qui a quelques années mais qui marche très bien)
- et une Jet d'encre couleur : Epson ET2700 (qui a 1 ans)

Mais le problème n'est pas l'imprimante mais la différence entre les commandes
DefautPrinter et PrinterRequester qui renvoi pas les même dimensions pour la même imprimante.

Si tu peux tester, dit moi si tu retrouve cette différence ?

Re: Fred : problème de dimension des pages d'imprimantes

Publié : lun. 25/nov./2019 19:50
par kernadec
bsr Ulix
désolé, mais chez moi le test ne donne pas d' erreur.
comme tu peux le voir aucune différence sur mon imprimante canon MG5550
avec un pc intel 4core version PB 570 LTS

il y a peut être un truc a vérifier sur ton windows dans le panneau de config imprimante en cliquant sur l' icone de l'imprimante des onglets apparaissent, et puis de tester ton code avec un autre ordi et tes imprimantes
Cordialement

ps: je n’achète plus de matos epson dans les années 2000 j 'ai eu plusieurs scanners scsi etc..
et imprimantes leurs mises à jours drivers étaient toujours à la ramasse,
donc j'ai rayé cette marque de mes achats....
pareil pour Amazone j'achète plus rien non plus..
ils font venir le matos de n'importe ou sur terre si tu as un problème de garantie les frais de port sont ouf...
Impression avec 'DefautPrinter'
Pensez a changer votre imprimante par défaut avant
chaque impression et de tester toutes vos imprimantes
Dimension (Larg X Haut) = 575*814
Impression avec la 'PrintRequester'
Dimension (Larg X Haut) = 575*814

Re: Fred : problème de dimension des pages d'imprimantes

Publié : lun. 25/nov./2019 21:30
par Ulix
Merci kernadec ! :wink:

Donc apparemment sous Windows les dimensions renvoyaient son identique avec les
deux commandes : DefautPrinter et PrinterRequester !

En se qui me concerne je suis sous Linux peut-être est-ce un problème avec lui ? :oops:

Si quelqu'un pouvait tester sous Linux et m'en faire part, cela m'aiderais !

Merci d'avance

Re: Fred : problème de dimension des pages d'imprimantes

Publié : mar. 26/nov./2019 10:30
par Mesa
Avec XP, je n'ai pas de différence.

Quelques outils sous windows:

Code : Tout sélectionner

;COMMANDES
;Tous les placements de texte sont en millimètres ( sauf chiffres négatif)
;MLD_impFont(nomfont$,grd.l,opt1.l,opt2.l,opt3.l,coul.l) 
;MLD_impDrawText(mmhz ,mmvert,"txt") écrit une ligne  
;           si mmhz = -1 imprime aprés le dernier texte
;           si mmhz = -2 centre le texte
;           si mmvert = -1 garde la même ligne de texte
;           si mmvert = -2 met un interligne  (calcul automatique en fonction de la police)
;MLD_impcadre(X.l,Y.l,L.l,H.l,coul) trace un cadre, indiquez des millimètres
;MLD_impline(X.l,Y.l,L.l,H.l,coul) trace une ligne horizontale, indiquez des millimètres
;MLD_implinevert(X.l,Y.l,X2.l,Y2.l,coul) trace une ligne verticale Y2 en mm = destination
;MLD_impFormatmonnaie(X.l,Y.l,valeur$,syb$,masque$)
;           si X.l = -1 imprime après le dernier texte
;           masque$ peut s'écrire comme ceci "### ### ###,##" pas plus de 2 chiffres après la virgule
Declare nbDPI()
Declare mmlH(nbmm.l)
Declare mmlV(nbmm.l)
Declare MLD_impFont(nomfont$,grd.l,opt1.l,opt2.l,opt3.l,coul.l)
Declare Intlig()
Declare MLD_impDrawText(hz.l,ht.l,txt$)
Declare MLD_impcadre(X.l,Y.l,L.l,H.l,coul)
Declare MLD_impline(X.l,Y.l,L.l,H.l,coul)
Declare MLD_implinevert(X.l,Y.l,Y2.l,coul)
Declare MLD_impFormatmonnaie(X.l,Y.l,valeur$,syb$,masque$)
Declare imp()
Global FontID1
Global DPIHZ.l,MGH.l,Lgmax.l
Global DPIVT.l,MGV.l,Htmax.l
Global Ecrdpihz.l,Ecrdpivt.l
Global largtxt.l,lig.l,poshz.l
Procedure nbDPI();initialisation
  hdc = GetDC_(GetDesktopWindow_())
  If hdc :Ecrdpihz.l  = GetDeviceCaps_(hdc, #LOGPIXELSX) :EndIf
  If hdc :Ecrdpivt.l = GetDeviceCaps_(hdc, #LOGPIXELSY) : ReleaseDC_(GetDesktopWindow_(), hdc) : EndIf
  If DefaultPrinter() <> 0
    printer_DC.l = StartDrawing(PrinterOutput())
    DPIHZ.l = GetDeviceCaps_(printer_DC,#LOGPIXELSX)
    DPIVT.l = GetDeviceCaps_(printer_DC,#LOGPIXELSY)
    MGH.l = GetDeviceCaps_(printer_DC,#PHYSICALOFFSETX)
    MGV.l = GetDeviceCaps_(printer_DC,#PHYSICALOFFSETY)
    ;MGV.l = 40
    ; =================2 Fois les marges===========================
    Lgmax.l = GetDeviceCaps_(printer_DC,#PHYSICALWIDTH) - 2*MGH.l
    Htmax.l = GetDeviceCaps_(printer_DC,#PHYSICALHEIGHT) - 2*MGV.l 
    ;==============================================================
    PhysW.l=GetDeviceCaps_(printer_DC,#PHYSICALWIDTH)
    PhysH.l=GetDeviceCaps_(printer_DC,#PHYSICALHEIGHT)
    StopDrawing()
    
    ; 	Debug Ecrdpihz
    ; 	Debug Ecrdpivt
    
    Debug "DPI"
    Debug DPIHZ
    Debug DPIVT
    Debug ""	
    
    Debug "PHYSIC en point imprimante"
    ;2.54cm=1pouce
    Debug PhysW ;(21cm/2.54)*DPI
    Debug PhysH ;(29.7cm/2.54)*DPI
    Debug "PHYSIC en cm"
    ;2.54cm=1pouce
    Debug PhysW*2.54/DPIHZ ;(21cm/2.54)*DPI
    Debug PhysH*2.54/DPIVT ;(29.7cm/2.54)*DPI
    Debug ""	
    
    Debug "MARGE MATERIEL en point imprimante"	
    Debug MGH ;(marge cm/2.54)*DPI
    Debug MGV ;(marge cm/2.54)*DPI
    Debug "MARGE MATERIEL en cm"	
    Debug MGH*2.54/DPIHZ
    Debug MGV*2.54/DPIVT	
    Debug ""	
    
    Debug "zone imprimable: PHYSIC - 2*MARGE MATERIEL en point imprimante"	
    Debug Lgmax
    Debug Htmax
    Debug "zone imprimable:PHYSIC - 2*MARGE MATERIEL en cm"	
    Debug Lgmax*2.54/DPIHZ
    Debug Htmax	*2.54/DPIVT	
    Debug ""	
    
    Debug "PB zone d'impression en pixels." 
    Debug PrinterPageWidth()
    Debug PrinterPageHeight()
    
    
  EndIf 
EndProcedure 
nbDPI()
Procedure MLD_impFont(nomfont$,grd.l,opt1.l,opt2.l,opt3.l,coul.l)
  StopDrawing()
  K.l = DPIHZ.l/Ecrdpihz.l
  FontID1 = LoadFont(1,nomfont$,grd * K,opt1.l | opt2.l | opt3.l)
  StartDrawing(PrinterOutput()) 
  DrawingMode(#PB_2DDrawing_Transparent)
  FrontColor(coul.l)
  DrawingFont(FontID(1))
EndProcedure

Procedure mmlH(nbmm.l)
  res.l = ((DPIHZ.l * nbmm.l) / 25.4) - MGH.l
  If res.l <= MGH.l ;pour ne pas être < a la marge imposée
    res.l = MGH.l
  EndIf
  If res.l => Lgmax.l
    res.l = Lgmax.l ;pour ne pas être > a la marge imposée a droite de la feuille
  EndIf
  poshz.l = res.l + largtxt.l;* 25.4 /DPIHZ.l 
  ProcedureReturn res
EndProcedure 

Procedure mmlV(nbmm.l)
  res.l = ((DPIVT.l * nbmm.l) / 25.4) - MGV.l
  If res.l <= MGV.l ;pour ne pas être < a la marge imposée en haut
    res.l = MGV.l
  EndIf
  If res.l => Htmax.l
    res.l = Htmax.l ;pour ne pas être > a la marge imposée en bas de la feuille
  EndIf
  lig.l = res.l ;en pixels 
  ProcedureReturn res
EndProcedure

Procedure Intlig()
  If TextHeight("AW") <= 43;en pixel
    kintlig.l = 1.3
  Else
    kintlig.l = 1.4
  EndIf   
  Interlig.l = TextHeight("AW")/kintlig.l
  res.l = lig.l + Interlig.l 
  lig.l = res;en pixel
  ProcedureReturn res.l
EndProcedure

Procedure MLD_cadre(X.l,Y.l,L.l,H.l,coul)
  DrawingMode(#PB_2DDrawing_Transparent)
  DrawingMode(#PB_2DDrawing_Outlined)
  larg .l = (DPIHZ.l * L.l) / 25.4
  haut.l = (DPIVT.l * H.l) / 25.4
  Box(mmlH(X.l),mmlV(Y.l),larg .l,haut.l,coul)
EndProcedure

Procedure MLD_line(X.l,Y.l,L.l,H.l,coul)
  DrawingMode(#PB_2DDrawing_Transparent)
  larg .l = (DPIHZ.l * L.l) / 25.4
  haut.l = (DPIVT.l * H.l) / 25.4
  Line(mmlH(X.l),mmlV(Y.l),larg .l,haut.l,coul)
EndProcedure

Procedure MLD_linevert(X.l,Y.l,Y2.l,coul)
  DrawingMode(#PB_2DDrawing_Transparent)
  hz2 .l = (DPIVT.l * X.l) / 25.4
  haut2.l = (DPIVT.l * Y2.l) / 25.4
  LineXY(mmlH(X.l),mmlV(Y.l),mmlH(X2.l),mmlV(Y2.l),coul)
EndProcedure 

Procedure MLD_impFormatmonnaie(X.l,Y.l,valeur$,syb$,masque$)
  If X.l = -1
    X.l = (poshz.l + MGH.l) * 25.4/DPIHZ.l
  EndIf 
  If masque$ <> ""
    masque$ = masque$ + "." + syb$
    xmax.l = X.l + (TextWidth(masque$) * 25.4/DPIHZ.l)
  EndIf  
  ind = 0
  ReplaceString(valeur$, ".", ",", #PB_String_InPlace, 1)
  For zz.w =  Len(valeur$) To 1 Step -1
    ind = ind + 1
    valeur2$ = valeur2$ + Mid(valeur$,zz,1)
    If Mid(valeur$,zz,1) = "," : ind = 0 :EndIf
    If ind = 3
      ind = 0
      If Mid(valeur$,zz,1) <> ","
        valeur2$ = valeur2$ + " "
      EndIf
    EndIf
  Next 
  txt$ = ReverseString(valeur2$) + "." + syb$
  If masque$ <> ""
    posd.l = xmax.l - (TextWidth(ReverseString(valeur2$) + "." + syb$) * 25.4/DPIHZ.l)
    If posd.l < X.l:posd.l = X.l:EndIf
  Else
    posd.l = X.l
  EndIf 
  MLD_impDrawText(posd.l,Y.l,txt$)
EndProcedure

Procedure MLD_impDrawText(hz.l,ht.l,txt$)
  DrawingMode(#PB_2DDrawing_Transparent)
  largtxt.l = TextWidth(txt$);en pixel
  Select hz.l
    Case -1 ;écrit a la fin du dernier texte
      chz.l = poshz.l
    Case -2 ;centre
      chz.l = ((Lgmax - MGH.l)  - TextWidth(txt$))/2 
    Default
      chz.l = mmlH(hz.l);déplacement horizontal
  EndSelect   
  Select ht.l
    Case -1 ; reste sur la même ligne
      cht.l = lig.l 
    Case -2 ;interligne
      cht.l = Intlig()
    Default
      cht.l = mmlV(ht.l); déplacement vertical
  EndSelect   
  DrawText(chz.l,cht.l,txt$)
EndProcedure





;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤  DEMO  ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Procedure imp1()
  L1$ = "Marcel BAVARD"
  L2$ = "AVOCAT AU BARREAU DE PARIS" 
  L3$ = "15 rue du Rire 75001 Paris"
  L4$ = "Tel : 01 01 01 01 10  FAX : 01 01 01 01 11  Mail : bavardavocat@wanadoo.fr"
  L5$ = "n° siret : 12345671547645     n° TVA intracom FR89439376"
  L6$ = "Membre d’une Association Agréée. Le règlement des honoraires par chèque est accepté." 
  L7$ = "Spécialiste du droit des affaires"
  If DefaultPrinter() <> 0 
    If StartPrinting("Mic")
      StartDrawing(PrinterOutput()) 
      MLD_impFont("Times New Roman",20,#PB_Font_HighQuality,#PB_Font_Bold,0,$0)
      MLD_impDrawText(15,20,L1$)
      MLD_impDrawText(0,-2,"")
      MLD_impFont("Times New Roman",14,#PB_Font_HighQuality,0,0,$0)
      MLD_impDrawText(15,-2,L2$)
      MLD_impDrawText(0,-2,"")
      MLD_impFont("Times New Roman",10,#PB_Font_HighQuality,0,0,$0)
      MLD_impDrawText(15,-2,L7$)
      MLD_impFont("Times New Roman",14,#PB_Font_HighQuality,0,0,$0)
      MLD_impDrawText(-2,265,L3$)
      MLD_impDrawText(-2,-2,L4$)
      MLD_impDrawText(0,-2,"")
      MLD_impFont("Times New Roman",8,#PB_Font_HighQuality,0,0,$0)
      MLD_impDrawText(-2,-2,L5$)
      MLD_impDrawText(-2,-2,L6$)
      StopDrawing()
      StopPrinting()
    EndIf
  EndIf 
EndProcedure 

Procedure imp2()
  L1$ = "Michel DUCHIEN                          Amélie LECHAT"
  L2$ = "  Docteur vétérinaire diplomés de l'école d'Alfort" 
  L3$ = "Rennes le :" + FormatDate("%dd / %mm / %yyyy", Date()) 
  L4$ = "Madame, Monsieur"
  L5$ = "   Nous vous informons que la date de vaccination de votre chien MEDOR arrive."
  L6$ = " Pour une parfaite santé de votre animal, il serait souhaitable de prendre rendez vous"
  L7$ = " auprés de la clinique sous quinzaine."
  L8$ = " Nous praticons un tarif forfaitaire de vaccination de TTC : "
  L9$ = "45.35"
  L10$ = "Restant a votre entière disposition."
  L11$ = "Les Vétérinaires"  
  L12$ = "Clinique vétérinaire du Bison futé 7 rue du Grand singe 35000 Rennes"
  L13$ = " Ouverture du lundi au samedi de 9H a 18H  Tel : 01 01 01 01 10  FAX : 01 01 01 01 11 "
  L14$ = "n° siret : 12345671547645     n° TVA intracom FR89439376"
  L15$ = "Membre d’une Association Agréée. Le règlement des honoraires par chèque est accepté." 
  
  If DefaultPrinter() <> 0 
    If StartPrinting("Mic")
      StartDrawing(PrinterOutput()) 
      MLD_impFont("Georgia",18,#PB_Font_HighQuality,#PB_Font_Bold,0,$8B453B)
      MLD_impDrawText(-2,20,L1$)
      MLD_impDrawText(0,-2,"")
      MLD_impFont("Georgia",14,#PB_Font_HighQuality,0,0,$8B453B)
      MLD_impDrawText(-2,-2,L2$)
      MLD_impFont("Times New Roman",14,#PB_Font_HighQuality,0,0,$0)
      MLD_impDrawText(130,80,L3$)
      MLD_impDrawText(30,110,L4$)
      MLD_impDrawText(20,125,L5$)
      MLD_impDrawText(0,-2,"")
      MLD_impDrawText(20,-2,L6$)
      MLD_impDrawText(20,-2,L7$)
      MLD_impDrawText(0,-2,"")
      MLD_impDrawText(20,-2,L8$):MLD_impFormatmonnaie(-1,-1,L9$,"€","")
      MLD_impDrawText(0,-2,"")
      MLD_impDrawText(20,-2,L10$)
      MLD_impDrawText(130,190,L11$)
      MLD_impFont("Times New Roman",10,#PB_Font_HighQuality,0,0,$0)
      MLD_impDrawText(-2,265,L12$)
      MLD_impDrawText(-2,-2,L13$)
      MLD_impDrawText(0,-2,"")
      MLD_impFont("Times New Roman",8,#PB_Font_HighQuality,0,0,$0)
      MLD_impDrawText(-2,-2,L14$)
      MLD_impDrawText(-2,-2,L15$)
      StopDrawing()
      StopPrinting()
    EndIf
  EndIf 
EndProcedure 

Enumeration 
  #btess1
  #btess2
EndEnumeration 

OpenWindow(1, 0, 0, 300, 200, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
ButtonGadget(#btess1, 80, 50,150,30,"Test Imprimante 1")
ButtonGadget(#btess2, 80, 100,150,30,"Test Imprimante 2")
Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget() ; Gadgets
        Case #btess1
          imp1()
        Case #btess2
          imp2()
      EndSelect
  EndSelect
Until Event = #PB_Event_CloseWindow
End   

Le module ci-dessous est fantastique !
https://github.com/hgzh/VecVi/blob/master/VecVi.pb
https://www.purebasic.fr/german/viewtop ... =8&t=30474

M.

Re: Fred : problème de dimension des pages d'imprimantes

Publié : mar. 26/nov./2019 16:44
par Ulix
Ok, merci Mesa :P

Sous Windows ça marche bien !

Y a t-il quelqu'un pour tester sous Linux ?

Merci d'avance :D

Re: Fred : problème de dimension des pages d'imprimantes

Publié : mer. 27/nov./2019 2:19
par Ollivier
Qui a supprimé mon code ?

Re: Fred : problème de dimension des pages d'imprimantes

Publié : mer. 27/nov./2019 11:35
par Ulix
Bonjour,

Désolé Olivier je n'est pas vu ton code !
Mais tu peux toujours le remettre !

Je rappelle, que mon problème (apparemment sous linux seulement :oops: ) est que les
commandes : DefautPrinter et PrinterRequester ne renvoient pas les même les dimensions
pour une même imprimante.

Merci pour tous vos commentaires ! :)

Re: Fred : problème de dimension des pages d'imprimantes

Publié : jeu. 28/nov./2019 8:32
par djes
Ollivier a écrit :Qui a supprimé mon code ?
C'est moi, mais il n'y avait pas de code, juste le début d'une phrase.

Re: Fred : problème de dimension des pages d'imprimantes

Publié : jeu. 28/nov./2019 14:57
par Ollivier
Eh mais... Tu pouvais pas dire un petit "bonjour" avant de tirer sur le lapin ?!?

C'est moi qui me suis endormi... Désolé.