Bonsoir à tous ,

je viens vous car je suis perdu de chez perdu , j ai quelques notions de programmations mais pas assez poussé pour faire ma modif , mon code est du tspl2 pour imprimante TSC

je veux modifier un vieux code que j ai retrouver sur mon pc pour pouvoir lancer des impressions .

je vous explique le programme à été codé pour importer des fichier .PCX , ou les PCX on la même largeur , le programme les mets bout à bout avec une marge fixe entre chaque PCX. Les pcx dans ma base de donnée sont des lettre et des chiffres.

Ma problématique est que maintenant j aimerai importer des PCX avec des largeurs différentes et les mettre bout a bout également mais que mon programme prenne en compte la largeur variable des PCX.

Si il faut je peut connaitre précisément la taille de mes différents PCX , et peut être les rentrer dans le programme?

Pouvez me donner des pistes ???
voici la partie de mon programme qui nous intéresse

SET DEBUG LABEL
SET COM1 96,N,8,1
SET RIBBON ON
GAP 0,0
SET GAP OFF
SET CUTTER OFF
SET PEEL OFF
SPEED 3
DENSITY 0
REM #### OFFSET -0.2
LIMITFEED 10

REFERENCE 0,0
SET KEY1 OFF
SET KEY2 OFF
SET ENCODER OFF
DIRECTION 0
GOTO START

:START
SIZE 110 mm, 520 mm
CLS

:GETPOLICE
POLICE$ = "13"
INPUT "P?(4/5/6/8/10/12/13) ",10, POLICE$
IF POLICE$ = "4" THEN
REM #### RIEN
ELSEIF POLICE$ = "5" THEN
REM #### RIEN
ELSEIF POLICE$ = "6" THEN
REM #### RIEN
ELSEIF POLICE$ = "8" THEN
REM #### RIEN
ELSEIF POLICE$ = "10" THEN
REM #### RIEN
ELSEIF POLICE$ = "12" THEN
REM #### RIEN
ELSEIF POLICE$ = "13" THEN
REM #### RIEN
ELSE GOTO GETPOLICE
ENDIF

:GETTEXTE
TEXTE$ =""
INPUT "TEXTE ? ", 12, TEXTE$

IF TEXTE$ = "XX" THEN
TMPSTR$ = "3"
INPUT "SPEED=", TMPSTR$
SPEED VAL(TMPSTR$)
TMPSTR$ = "0"
INPUT "TEMPERATURE=", TMPSTR$
DENSITY VAL(TMPSTR$)
GOTO GETTEXTE
ENDIF

TEXTELEN = LEN(TEXTE$)
IF TEXTELEN < 1 THEN GOTO GETTEXTE


:LOADMAT
IF PEEL = 1 THEN GOTO GETIMPRIMER ELSE
TMPSTR$ = " "
INPUT "REFLECTO ET ENTRER", TMPSTR$
FEED 170

FOR MYCOUNT = 1 TO 400
IF PEEL = 0 THEN
FEED 1
ELSE
GOTO GETIMPRIMER
ENDIF
NEXT

GOTO LOADMAT

:GETIMPRIMER
TEMPIMPR$ = TEXTE$
INPUT "IMPRIMER ?", 10, TEMPIMPR$
IF TEMPIMPR$ = TEXTE$ THEN
REM #### Ne rien faire
ELSE
GOTO START
ENDIF


TEXTELEN = LEN(TEXTE$)
LARGEUR = 4160

REM #### Pour calage BAR 20,1,160,2

REM #### en 203 DPI 1mm = 8 dot
REM #### ATTENTION X et Y inversé

SPACEGAP = 296
CHRSIZE = 336


REM #### valeur pour modifier le centrage 730 PAR DEFAULT
YPOS = 600
ENDIF


SIZE 110 mm, 520 mm
CLS



REM #### Calcul pour centrage du texte
REM #### Rappel : On part du dernier caractère
NBCARMANQUANT = 12 - TEXTELEN
NBDECALAGE = NBCARMANQUANT * 230
NBDECALAGE = INT(NBDECALAGE / 2)
YPOS = YPOS + NBDECALAGE

REM #### Parcours du texte du dernier au premier
FOR MYCOUNT = TEXTELEN TO 1 STEP -1

CURCHAR$ = MID$(TEXTE$, MYCOUNT, 1)

IF CURCHAR$ = " " THEN
REM ####
YPOS = YPOS + 230
ELSE
REM #### valeur pour changer espacement entre les carracteres
PUTPCX XPOS, YPOS, CURCHAR$ + "p"+POLICE$+ ".PCX"
YPOS = YPOS + 320
ENDIF

NEXT


BACKFEED 160
PRINT 1

:GETENCORE
ENCORE$ = "N"
INPUT "ENCORE ? (0/N)", ENCORE$
IF ENCORE$ = "O" THEN
GOTO GETPOLICE
ELSE
GOTO GETTEXTE
ENDIF

EOP

il existe un manuel de programmation TSPL2 mais pas assez complet pour moi
Merci d'avance pour tout qui peuvent me filer un coup de main
Cdt