



Format d'un fichier texte utilisé pour créer un fichier de paramètres * ou %.
Tous les caractères suivant l'astérisque ou le caractère pour cent sont ignorés. Les lignes
vides le sont aussi.
Toutes les autres lignes contiennent un mot clé suivi d'un signe égal, suivi lui-même des paramètres du mot clé. Il existe des mots clés sans paramètre.
4.3.1 Mots clés
Tous les mots clés décrits ci-dessous doivent être spécifiés, sauf ceux qui figurent entre crochets (COMMENT, TYPE et VF_PATH). L'ordre d'apparition des mots clés n'a pas d'importance. Les parties optionnelles d'une ligne sont entre crochets, les alternatives sont séparées par une barre verticale. Les différentes sortes d'arguments sont abrégés comme suit:
px
peut
aussi
être
utilisé)
Mots clés utilisables avec tous les fichiers de paramètres
Les mots clés suivants peuvent être utilisés avec les fichiers de paramètres de tous types :
[COMMENT=[t]] ENV_NAME=t FONT_PATH=t +fonts-files.
LOG_NAME=t PAGE_HEIGHT=d +height.
PAGE_WIDTH=d +width.
RESOLUTION=n1 n2 +resolution-x,
n2
est
la
valeur
par
défaut
pour
+resolution-y.
[TYPE=[(DOT | DOT_HORZ | BITMAP)]] TYPE=DOT
et
TYPE=DOT_HORZ,
un
fichier
de
paramètres
pour
piloter
une
imprimante
matricielle
sera
créé.
Avec
TYPE=BITMAP,
un
fichier
de
paramètres
pour
produire
des
fichiers
graphiques
sera
créé.
Si
TYPE=
est
utilisé
sans
argument,
ou
si
TYPE=
est
omis,
la
valeur
TYPE=DOT
sera
prise.
[VF_PATH=t] +virtual-fonts;
il
devrait
rester
vide.TYPE=DOT est utilisé pour les imprimantes dont les aiguilles sont disposées verticalement
et pour lesquelles chaque octet de donnée graphique correspond à une colonne de
points. La plupart des imprimantes à impact sont de ce type. Les mots clés ci-dessous
peuvent être utilisés seulement dans des fichiers de paramètres qui contiennent la ligne
TYPE=DOT.
BLANK_WIDTH=[n
]Largeur
d'un
caractère
espace.
Ces
caractères
sont
utilisés
à
la
marge
gauche
pour
déplacer
la
tête
d'impression
vers
la
droite.
Pour
cette
raison,
la
largeur
d'un
caractère
espace
est
requise
pour
les
points
en
mode
graphique.
S'il
ne
faut
pas
utiliser
des
espaces
pour
déplacer
la
tête
d'impression,
alors
l'argument
doit
être
vide.
COLUMNS=n +width.
DOUBLE_SIDED_LONG=[s] Suite
de
codes
pour
initialiser
l'imprimante
en
mode
+double-sided:long.
DOUBLE_SIDED_SHORT=[s] Suite
de
codes
pour
initialiser
l'imprimante
en
mode
+double-sided:short
EXIT=[s] FF_METHOD=FF|LF FORM_FEED,
soit
en
envoyant
plusieurs
sauts
de
ligne
(Line
Feed).
Voir
FORM_LENGTH.
FORM_FEED=[s] FF_METHOD=FF.
Le
nombre
d'alimentations
(unités
de
mouvement
dans
le
sens
vertical,
ou
de
points
si
VMU=1)
est
disponible
dans
la
variable
form_feed.
FORM_LENGTH=[d] +form-length.
Nécessaire
seulement
pour
FF_METHOD=LF.
Si
elle
n'est
pas
donnée,
Dvidot
utilisera
la
hauteur
de
papier
comme
hauteur
de
page.
GRAPH_END=[s] GRAPH_MODE=[s] pixels.
INIT1=[s] +slow:off
est
sélectionnée
(c'est
la
valeur
par
défaut).
INIT2=[s] +slow:on
est
sélectionnée.
LINE_FEED=[s] FF_METHOD=LF.
Le
nombre
d'alimentations
(unités
de
mouvement
vertical,
ou
de
points
si
VMU=1)
est
disponible
dans
la
variable
line_feed.
LINE_FEED
ne
sera
pas
utilisé
(sauf
pour
faire
un
saut
de
page,
dans
le
cas
où
FF_METHOD=LF)
si
une
séquence
de
contrôle
POS_Y
est
donnée.
MAX_LF=n LINE_FEED.
Les
sauts
de
lignes
plus
grands
sont
réalisés
en
utilisant
plusieurs
sauts
de
lignes
plus
petits.
MAX_WIDTH=[n1 [n2]] METHOD=n1 n2 n1
est
le
nombre
d'octets
qui
doivent
être
envoyés
à
l'imprimante
pour
imprimer
une
colonne
de
points,
dans
le
mode
graphique
sélectionné
(1
à
8).
n2
est
le
nombre
de
passes
par
ligne
(séparées
par
le
plus
petit
interligne).
Si,
par
exemple,
l'espacement
des
aiguilles
est
de
1/72
de
pouce
et
que
l'imprimante
peut
déplacer
le
papier
par
pas
de
1/216
de
pouce
de
façon
raisonnablement
fiable,
alors
n2
peut
être
fixé
à
3.
Ainsi
dans
cet
exemple
la
résolution
verticale
peut
atteindre
216
DPI.
Des
valeurs
de
1
à
6
peuvent
être
utilisées.
ONE_LINE_FEED=[n] INIT1
et
INIT2
pour
programmer
l'espacement
des
lignes
de
l'imprimante.
Si
LINE_FEED
(voir
ci-dessous)
est
utilisé
pour
reprogrammer
cet
espacement,
alors
l'argument
de
ONE_LINE_FEED
devra
être
vide.
L'imprimante
doit
effectuer
un
saut
de
ligne
de
n
points
lorsqu'elle
reçoit
un
caractère
LF
(Line
Feed).
PINS=n1 n2 n1
est
le
numéro
du
bit
correspondant
à
l'aiguille
supérieure
et
n2
celui
du
bit
correspondant
à
l'aiguille
inférieure
(la
plupart
des
imprimantes
sont
positionnées
à
PINS=0
7
ou
PINS=7
0).
Des
valeurs
de
0
à
7
peuvent
être
entrées.
POS_X=[s] pos_x.
POS_Y=[s] pos_y.
Si
une
séquence
POS_Y
est
donnée,
LINE_FEED
n'est
pas
utilisé
(sauf
pour
faire
un
saut
de
page,
si
FF_METHOD=LF
est
sélectionné).
S_OPTION=OFF|SLOW|DOUBLE_STRIKE|STAGGER +slow.
Si
elle
est
mise
à
OFF,
il
n'y
a
pas
d'option
+slow.
Si
elle
est
mise
à
SLOW,
+slow:on
sélectionne
INIT2
plutôt
que
INIT1.
Si
elle
est
mise
à
DOUBLE_STRIKE,
l'option
+slow:on
sélectionne
INIT2
plutôt
que
INIT1,
et
impose
deux
passes
pour
chaque
ligne
imprimée.
Les
colonnes
1,3,5. . . sont
imprimées
pendant
la
première
passe,
et
les
colonnes
2,
4,
6. . . pendant
la
seconde
passe.
Ceci
est
prévu
pour
les
imprimantes
telles
que
la
FX-80,
qui
ne
peuvent
pas
imprimer
deux
points
consécutifs
avec
la
même
aiguille.
Avec
S_OPTION=STAGGER,
l'option
+slow:on
sélectionne
INIT2
au
lieu
de
INIT1
et
effectue
deux
passes
pour
chaque
ligne.
Pendant
la
première
passe,
les
aiguilles
de
numéro
pair
des
colonnes
de
numéro
impair
sont
désactivées,
et
pendant
la
seconde
passe,
les
aiguilles
de
numéro
impair
des
colonnes
de
numéro
pair
sont
désactivées.
Ceci
est
prévu
pour
les
imprimantes
qui
ne
peuvent
pas
imprimer
deux
points
consécutifs
avec
la
même
aiguille
et
qui
ne
peuvent
pas
utiliser
de
façon
fiable
plus
de
la
moitié
des
aiguilles
dans
une
colonne.
[VMU=n] Unité de mouvement vertical. C'est le nombre de points par saut de ligne, en mode graphique. Par exemple, si l'imprimante peut imprimer avec une résolution verticale de 360 dpi, mais ne peut alimenter le papier que par unités de 1/180 pouce, sélectionnez VMU=2. Si VMU n'est pas défini ou s'il a la valeur 0, VMU est pris égal à 1. VMU=1 veut dire que le mouvement vertical est exprimé en points graphiques.
TYPE=DOT_HORZ est à utiliser pour les imprimantes où chaque octet de donnée
graphique correspond à 8 points successifs disposés horizontalement. Certaines
imprimantes à jet d'encre sont de ce type. Les mots clés ci-dessous peuvent être
utilisés seulement dans des fichiers de paramètres qui contiennent une ligne
TYPE=DOT_HORZ.
BITS=n1 n2 n1
est
du
côté
gauche,
le
bit
n2
du
côté
droit.
Seulement
BITS=7
0
ou
BITS=0
7
peuvent
être
utilisés.
COLUMNS=n +width.
DOUBLE_SIDED_LONG=[s] Séquence
de
contrôle
pour
initialiser
l'imprimante
en
mode
+double-sided:long.
DOUBLE_SIDED_SHORT=[s] Séquence
de
contrôle
pour
initialiser
l'imprimante
en
mode
+double-sided:short
EXIT=[s] FF_METHOD=FF|LF FORM_FEED,
soit
en
envoyant
plusieurs
sauts
de
ligne
(Line
Feed).
Voir
FORM_LENGTH.
FIRST_BYTE=(TOP|BOTTOM) (LEFT|RIGHT) Cette
déclaration
indique
quel
coin
de
l'image
correspond
au
premier
octet
de
la
première
ligne
à
imprimer.
TOP
imprime
la
ligne
supérieure
d'abord,
BOTTOM
imprime
la
ligne
du
bas
en
premier.
LEFT
imprime
la
colonne
de
gauche
de
chaque
ligne
en
premier,
RIGHT
imprime
la
colonne
de
droite
de
chaque
ligne
en
premier.
Les
réglages
suivants
sont
utilisés
le
plus
souvent :
FIRST_BYTE=TOP
LEFT
FORM_FEED=[s] FF_METHOD=FF.
Le
nombre
d'alimentations
(unités
de
mouvement
dans
le
sens
vertical,
ou
de
points
si
VMU=1)
est
disponible
dans
la
variable
form_feed.
FORM_LENGTH=[d] +form-length.
Nécessaire
seulement
pour
FF_METHOD=LF.
Si
elle
n'est
pas
donnée,
Dvidot
utilisera
la
hauteur
de
papier
comme
hauteur
de
page.
INIT1=[s] +slow:off
est
sélectionnée
(c'est
la
valeur
par
défaut).
INIT2=[s] +slow:on
est
sélectionnée.
LINE_FEED=[s] FF_METHOD=LF.
Le
nombre
d'alimentations
(unités
de
mouvement
vertical,
ou
de
points
si
VMU=1)
est
disponible
dans
la
variable
line_feed.
LINE_FEED
ne
sera
pas
utilisé
(sauf
pour
faire
un
saut
de
page,
dans
le
cas
où
FF_METHOD=LF)
si
une
séquence
de
contrôle
POS_Y
est
donnée.
MAX_LF=n LINE_FEED.
Les
sauts
de
lignes
plus
grands
sont
réalisés
en
utilisant
plusieurs
sauts
de
lignes
plus
petits.
MAX_WIDTH=[n1 [n2]] ONE_LINE_FEED=[n] INIT1
et
INIT2
pour
programmer
l'espacement
des
lignes
de
l'imprimante.
Si
LINE_FEED
(voir
ci-dessous)
est
utilisé
pour
reprogrammer
cet
espacement,
alors
l'argument
de
ONE_LINE_FEED
devra
être
vide.
L'imprimante
doit
effectuer
un
saut
de
ligne
de
n
points
lorsqu'elle
reçoit
un
caractère
LF
(Line
Feed).
POS_X=[s] pos_x.
POS_Y=[s] pos_y.
Si
une
séquence
POS_Y
est
donnée,
LINE_FEED
n'est
pas
utilisé
(sauf
pour
faire
un
saut
de
page,
si
FF_METHOD=LF
est
sélectionné).
ROW_BEGIN=[s] pixels.
ROW_END=[s] ROW_END.
Cette
séquence
est
supposée
déplacer
le
curseur
vers
la
ligne
suivante.
S_OPTION=OFF|SLOW +slow.
Si
elle
est
mise
à
OFF,
il
n'y
a
pas
d'option
+slow.
Si
elle
est
mise
à
SLOW,
+slow:on
sélectionne
INIT2
plutôt
que
INIT1.
[VMU=n] Unité
de
mouvement
vertical.
C'est
le
nombre
de
points
par
saut
de
ligne,
en
mode
graphique.
Par
exemple,
si
l'imprimante
peut
imprimer
avec
une
résolution
verticale
de
360 dpi,
mais
ne
peut
alimenter
le
papier
que
par
unités
de
1/180
pouces,
sélectionnez
VMU=2.
Si
VMU
n'est
pas
défini
ou
s'il
a
la
valeur
0,
VMU
est
pris
égal
à
1.
VMU=1
veut
dire
que
le
mouvement
vertical
est
exprimé
en
points
graphiques.
Les mots clés suivants peuvent être utilisés uniquement dans les fichiers de paramètres
qui contiennent la ligne TYPE=BITMAP.
ALIGN_WIDTH=n La
largeur
de
l'image
bitmap
sera
arrondie
à
un
entier
multiple
de
n
octets.
n
peut
prendre
les
valeurs
1,
2
et
4.
BITS=n1 n2 Définit
l'ordre
des
bits
dans
un
octet
de
donnée
graphique.
Bit
n1
est
du
côté
gauche,
n2
est
du
côté
droit.
Seulement
BITS=7
0ou
BITS=0
7
peuvent
être
utilisés.
CHECKSUM=n1 n2 t n4 e Méthode
pour
calculer
la
valeur
de
la
variable
checksum
(somme
de
vérification),
qui
est
insérée
dans
la
séquence
de
contrôle
HEADER.
Tout
d'abord,
checksum
est
prise
égale
à
n4.
Puis
une
boucle
est
effectuée
sur
la
séquence
de
contrôle
HEADER
en
commençant
à
l'octet
de
position
n1,
et
en
effectuant
n2
iterations:
selon
la
valeur
de
t,
1,
2
ou
4
octets
seront
obtenus
à
partir
de
l'en-tête
et
affectés
à
la
variable
value;
puis
l'expression
e
sera
évaluée
et
le
résultat
sera
affecté
à
la
variable
checksum;
la
position
dans
l'en-tête
est
avancée
de
1,
2
ou
4,
selon
la
valeur
de
t.
La
valeur
de
la
variable
checksum,
après
n2
itérations,
sera
la
valeur
insérée
comme
checksum
dans
la
séquence
de
contrôle
de
l'en-tête.
Pour
ce
calcul,
la
valeur
0
sera
affectée
aux
variables
checksum
et
file_size,
dans
la
séquence
de
contrôle
de
l'en-tête.
Si
vous
avez
besoin
d'inclure
ces
variables
dans
le
calcul
de
la
checksum,
vous
pouvez
essayer
de
le
faire
lorsque
vous
insérez
le
checksum
dans
l'en-tête.
Vous
pouvez
utiliser
les
mots
clés
suivants
pour
t :
| Mot clé | Signification |
BYTE | 8 bits |
WORD_LH | 16 bits, octet le moins significatif en premier |
WORD_HL | 16 bits, octet le plus significatif en premier |
LONG_LH | 32 bits, octet le moins significatif en premier |
LONG_HL | 32 bits, octet le plus significatif en premier |
Exemple: CHECKSUM=0 16 WORD_LH 0 checksum
value
La checksum est calculée en tant que 16-bit XOR sur les 32 premiers octets.
Si aucune checksum n'est requise, vous pouvez utiliser
CHECKSUM=0 0 BYTE 0 0
COMPRESS=(NO|MSP|PCX) Type de compression des données graphiques. Avec COMPRESS=NO, aucune
compression n'est faite, les données graphiques seront recopiées telles quelles dans
le fichier de sortie. COMPRESS=MSP utilise la méthode de compression des fichiers
msp, COMPRESS=PCX utilise la méthode de compression de type RLE qui est
utilisée dans les fichiers pcx.
FIRST_BYTE=(TOP|BOTTOM) (LEFT|RIGHT) Cette déclaration indique quel coin de l'image correspond au premier octet de
la première ligne des données graphiques. TOP écrit la ligne supérieure
d'abord, BOTTOM écrit la ligne du bas en premier. LEFT écrit la colonne de
gauche de chaque ligne en premier, RIGHT écrit la colonne de droite
de chaque ligne en premier. Les réglages suivants sont utilisés le plus
souvent :
FIRST_BYTE=TOP LEFT
HEADER=[s] L'en-tête du fichier graphique. cette séquence de contrôle sera écrite au début du
fichier graphique. Vous pouvez utiliser les variables res_x, res_y, width,
height, checksum et file_size.
ROW_BEGIN=[s] Cette séquence de contrôle est écrite au début de chaque ligne de données. Les
données graphiques suivront immédiatement. La largeur de la ligne (en pixels)
est disponible dans la variable pixels. D'habitude, cette séquence est
vide.
ROW_END=[s] Cette séquence de contrôle est écrite immédiatement après chaque ligne de données. D'habitude, cette séquence est vide.
TRAILER=[s] Cette séquence de contrôle est écrite à la fin du fichier graphique. Vous pouvez
utiliser les variables res_x, res_y, width, height et checksum.
4.3.2 Séquences de contrôle de l'imprimante
Ces séquences sont faites généralement de plusieurs parties séparées par des espaces. Chaque partie peut être construite à partir des éléments suivants:
Codes de contrôle ASCII avec leurs noms
| Nom | Code | Code |
| du code | hexa | décimal |
| NUL | 00 | 0 |
| SOH | 01 | 1 |
| STX | 02 | 2 |
| ETX | 03 | 3 |
| EOT | 04 | 4 |
| ENQ | 05 | 5 |
| ACK | 06 | 6 |
| BEL | 07 | 7 |
| BS | 08 | 8 |
| TAB | 09 | 9 |
| HT | 09 | 9 |
| LF | 0A | 10 |
| VT | 0B | 11 |
| FF | 0C | 12 |
| CR | 0D | 13 |
| SO | 0E | 14 |
| SI | 0F | 15 |
| DLE | 10 | 16 |
| DC1 | 11 | 17 |
| DC2 | 12 | 18 |
| DC3 | 13 | 19 |
| DC4 | 14 | 20 |
| NAK | 15 | 21 |
| SYN | 16 | 22 |
| ETB | 17 | 23 |
| CAN | 18 | 24 |
| EM | 19 | 25 |
| SUB | 1A | 26 |
| ESC | 1B | 27 |
| FS | 1C | 28 |
| GS | 1D | 29 |
| RS | 1E | 30 |
| US | 1F | 31 |
| DEL | 7F | 127 |
Caractères d'impression ASCII:
'x? '
est
envoyé
tel
quel.
"xxx"? "
jusqu'au
"
suivant
(non
inclus)
sur
la
même
ligne
sont
envoyés
à
l'imprimante.Nombres représentant le code d'un caractère ASCII:
0### #
est
un
chiffre
de
0
à
7.
Le
premier
caractère
est
le
chiffre
0.
0x## #
est
un
caractère
de
l'ensemble
(0-9,
A-F).
Le
premier
caractère
est
le
chiffre
0,
le
second
caractère
est
la
lettre
x.
### #
est
un
chiffre
de
0
à
9.0###).
Cette commande insère un octet :
^A ^a
à
^z
ou
^A
à
^Z
représentent
les
codes
1
à
26,
^@
représente
0.Insertion d'un paramètre numérique dans une séquence de contrôle:
Vous pouvez utiliser l'un des modèles suivants (voir ci-dessous pour xx):
xx+# #
au
paramètre
avant
de
l'insérer.
xx-# #
au
paramètre
avant
de
l'insérer.
xx*#+# xx*#-# xx seul, utilisez plutôt xx+0. Choisissez xx parmi:
Cette commande répète un certain nombre de fois la commande qui la suit immédiatement :
REP# #
fois
(1
à
256).
S'il
y
a
plusieurs
commandes
REP
successives,
seule
la
dernière
sera
prise
en
compte.Ces commandes évaluent une expression et insèrent le résultat en tant qu'octet, mot de 16 bits ou mot de 32 bits :
DEC# expression #
(1
à
9)
chiffres.
BYTE expression WORD_LH expression WORD_HL expression LONG_LH expression LONG_HL expression | nombre_décimal | nombre décimal (0 à 2147483647) |
| nombre_hexadécimal | nombre hexadécimal (0x0 à 0xffffffff) |
| variable | voir ci-dessous |
| ( expression ) | parenthèses redondantes |
| - expression | change le signe |
expression | NOT bit à bit |
| ( expression + expression ) | addition |
| ( expression - expression ) | soustraction |
| ( expression * expression ) | multiplication |
| ( expression / expression ) | quotient |
| ( expression % expression ) | reste |
| ( expression & expression ) | AND bit à bit |
( expression |expression ) | OR bit à bit |
( expression ^expression ) | XOR bit à bit |
| ( expression « expression ) | décalage vers la gauche (1 « 3 donne 8) |
| ( expression » expression ) | décalage vers la droite (10 » 1 donne 5) |
| ( expression < expression ) | comparaison: 1 si plus petit, 0 sinon |
| ( expression= expression ) | comparison: 1 si égal, 0 sinon |
Les parenthèses peuvent être omises seulement pour des opérateurs successifs du même type. Les opérateurs sont évalués de la gauche vers la droite. Les parenthèses peuvent être omises pour `«', `»', `<' et `='. Par exemple,
(((1+2)+3)+4)
peut être abrégé en :
(1+2+3+4)
En revanche, aucune parenthèse ne peut être omise dans ((3*2)+1).
Une variable est l'une des quantités ci-dessous :
res_x | résolution horizontale (dpi, +resolution-x) |
res_y | résolution verticale (dpi, +resolution-y) |
width | largeur de page (pixels, +width) |
height | hauteur de page (pixels, +height) |
one_lf | la valeur définie avec ONE_LINE_FEED= |
blank | la valeur définie avec BLANK_WIDTH= |
max_lf | la valeur définie avec MAX_LF= |
pixels | la largeur de la ligne courante de l'image bitmap |
line_feed | le nombre de sauts de ligne |
form_feed | le nombre de sauts de page |
pos_x | position horizontale avec POS_X= |
checksum | somme de vérification |
value | utilisée pour calculer la somme de vérification |
file_size | taille du fichier (utilisable seulement avec HEADER=) |
vmu | la valeur définie avec VMU=. Si VMU= n'est pas défini |
ou est égal à 0, la variable vmu contient 1. |
|
Si le dernier caractère d'une ligne est une barre oblique inverse (\) précédée d'un blanc,
la ligne suivante (qui ne doit pas être une ligne de commentaire) continuera la ligne.
Avec l'utilisation de lignes de continuation, les séquences de code longues peuvent être
entrées de façon plus commode. Chaque expression doit être entrée complètement sur une
ligne.
4.3.3 Exemples de séquences de contrôle d'imprimante
Mode graphique 240 DPI pour l'EPSON FX-80:
ESC '* 3 LH+0
En hexadécimal, ceci s'écrit : 1B 2A 03 n1 n2, où n1 + 256 * n2 est la largeur du
graphique en points.
Saut de ligne pour la NEC P6:
FS '3 L+0 LF
En hexadécimal, ceci s'écrit: 1C 33 n1 0A. Le papier sera déplacé de n1/360
pouce.
Positionnement horizontal d'une C.ITOH 8510A:
ESC 'F D4+0
En hexadécimal, ceci s'écrit: 1B 46 n1 n2 n3 n4, où n1 à n4 sont des nombres (30 à 39)
donnant la position horizontale.
Mode graphique à 24 aiguilles, spécifiant le nombre d'octets + 1 (largeur * 3 + 1):
ESC "[g" LH*3+1 5
En hexadécimal, ceci s'écrit (le paramètre est supposé valoir 100): 1B 5B 67 2D 01 05 où
2D 01 = 301 = 3 * 100 + 1
Exemple sans signification:
^A "abc" TAB ' 010 10 0x10 " ' "
En hexadécimal, ceci s'écrit: 01 61 62 63 09 20 08 0A 10 20 27 20.



