Metacode
Exemple d'un flux formaté en Metacode...
Format utilisé par Up ! Metacode
Le Metacode est le format natif des fichiers des imprimantes Xerox.
Le format Metacode est une succession d'enregistrements chacun composé de :
- Un en-tête.
Composé de la longueur de la commande sur deux octets en Big endian.
- Un flux d'octets.
Ils suivent l'en-tête.
Les enregistrements sont indépendants les uns des autres, en particulier pour le positionnement du stylo, la sélection de la police, l'orientation, etc.
Chaque octet du flux d'un enregistrement est soit une commande ou un texte, cela dépendant de sa valeur.
- Octet compris entre 0x00 et 0x31.
Il s'agit d'un code de commande. Celle-ci peut avoir des paramètres encodés dans les octets suivants.
- Octet supérieur ou égal à 0x32.
Il s'agit d'un code de caractère en Ascii. Il est utilisé pour écrire du texte ou exécuter une commande DJDE.
Les imprimantes Xerox ne supportant que le Metacode ont généralement une résolution de 300 Dot Per Inch (DPI).
Codes utilisés par Up ! Metacode
Couleur
Le basculement de l'impression en couleur s'effectue par le code de commande est 0x0c.
Le basculement de l'impression en noir et blanc s'effectue par le code de commande est 0x0d.
Déplacement du stylo
- Déplacement horizontal.
- Absolu.
Le déplacement horizontal et absolu du pointeur s'effectue par la code de commande est 0x04. Il est suivi deux octets encodés en Big Endian donnant la position en pixels.
Voici un exemple : 0x06 0x00 0x01
.
- Relatif.
Le déplacement horizontal et relatif du pointeur s'effectue par la code de commande est 0x05. Il est suivi deux octets encodés en Big Endian donnant la position en pixels.
Voici un exemple : 0x07 0x00 0x01
.
- Déplacement vertical.
- Absolu.
Le déplacement vertical et absolu du pointeur s'effectue par la code de commande est 0x04. Il est suivi deux octets encodés en Big Endian donnant la position en pixels.
Voici un exemple : 0x04 0x00 0x01
.
- Relatif.
Le déplacement vertical et relatif du pointeur s'effectue par la code de commande est 0x05. Il est suivi deux octets encodés en Big Endian donnant la position en pixels.
Voici un exemple : 0x05 0x00 0x01
.
Ecriture d'un caractère spécial
L'écriture d'un caractère spécial dans la police courante à la position courante s'effectue par le code de commande est 0x08. Il est suivi deux octets encodés en Big Endian.
Voici un exemple : 0x08 0x00 0x41
.
Fin de l'enregistrement
La fin de l'enregistrement est signalée par le code de commande est 0x01.
Mode paysage
Le basculement en mode paysage normal ou inverse s'effectue par respectivement les codes de commande 0x02 ou 0x03.
Mode portrait
Le basculement en mode portrait s'effectue par le code de commande est 0x09.
Sélection de la police
Pour sélectionner une police, le code de commande est 0x00. Il est suivi d'un octet donnant le code de la police.
Voici un exemple : 0x00 0x01
.
Commandes Dynamic Job Descriptor Entries utilisées par Up ! Metacode
Le bascule en mode Dynamic Job Descriptor Entries (DJDE) est indiqué par un identifiant spécifique.
Les commandes d'une séquence Dynamic Job Descriptor Entries sont séparées par un caractères virgule , .
Une séquence Dynamic Job Descriptor Entries se termeine par le caractère point-virgule ; .
DUPLEX
Bascule ou non en mode recto-verso.
Voici un exemple : DUPLEX=YES
.
END
Fin d'une séquence Dynamic Job Descriptor Entries.
FONTS
Déclaration d'une liste de police dont les identifiants sont écrits entre parenthèses. L'ordre de déclaration des polices définit les numéros de leur sélection par le code commande 0x00.
Voici un exemple : FONTS(UN110E,UN104B)
.
FORMS
Sélection du fond de page.
Voici un exemple : FORMS(/tmp/mon-fond-de-page.fdf)
.
IMAGE
Inclusion d'une image dont le nom du fichier est écrit entre parenthèses.
Voici un exemple : IMAGE(/tmp/mon-image.bmp)
.
Exemple d'un flux formaté en Metacode
Flux non formaté
/* ------------------------------------------------------------------- */
/* Fichier : clientftp.upl */
/* Objet : Exemple d'emploi d'Up ! Network. */
/* */
/* Module : Up ! Application System. */
/* Auteur-Date : DUVAL Jean-Pierre - Novembre 2003. */
/* ------------------------------------------------------------------- */
/* Observations */
/* */
/* */
/* ------------------------------------------------------------------- */
Source Composant "Exemple d'emploi d'Up ! Network" Version 4.0.0;
ImporterModule
UpsFts(, ImporterDefinitions);
Variable
/******/
MonServeur : Nul Ou ServeurFtp;
Principal
/*******/
Debut
MonServeur=ServeurFtp("ftp://local:21");
MonServeur.ChangerConnexion("anonymous", "contact@mon-domaine.com");
MonServeur.ChangerEtatTypeDonnees(TypeDonneesAscii);
CopierFichier("C:/tmp2/essai.txt", "ftp://local:21/tmp/essai.txt");
MonServeur.ChangerEtatTypeDonnees(TypeDonneesImage);
CopierFichier("ftp://local:21/tmp/essai.doc", "C:/tmp2/essai.doc");
MonServeur=Nul;
Fin Principal
Flux formaté
2F2A202D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D202A2F0A
2F2A2046696368696572202020203A20636C69656E746674702E75706C2020202020202020
202020202020202020202020202020202020202020202020202020202020202020202A2F0A
2F2A204F626A65742020202020203A204578656D706C65206427656D706C6F692064275570
2021204E6574776F726B2E20202020202020202020202020202020202020202020202A2F0A
2F2A2020202020202020202020202020202020202020202020202020202020202020202020
202020202020202020202020202020202020202020202020202020202020202020202A2F0A
2F2A204D6F64756C652020202020203A2055702021204170706C69636174696F6E20537973
74656D2E20202020202020202020202020202020202020202020202020202020202A2F0A2F
2A204175746575722D44617465203A20445556414C204A65616E2D506965727265202D204E
6F76656D62726520323030332E20202020202020202020202020202020202020202A2F0A2F
2A202D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D202A2F0A2F
2A20202020202020202020202020202020202020202020202020204F62736572766174696F
6E73202020202020202020202020202020202020202020202020202020202020202A2F0A2F
2A202020202020202020202020202020202020202020202020202020202020202020202020
2020202020202020202020202020202020202020202020202020202020202020202A2F200A
2F2A2020202020202020202020202020202020202020202020202020202020202020202020
202020202020202020202020202020202020202020202020202020202020202020202A2F20
0A2F2A202D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D
2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D202A2F
0A0A536F7572636520436F6D706F73616E7420224578656D706C65206427656D706C6F6920
642755702021204E6574776F726B222056657273696F6E20312E322E303B0A0A496D706F72
7465724D6F64756C65200A202020557073467470283C5570734674703E2C20496D706F7274
6572446566696E6974696F6E73293B0A0A5661726961626C650A2F2A2A2A2A2A2A2F0A2020
204D6F6E53657276657572203A204E756C204F7520536572766575724674703B0A0A507269
6E636970616C0A2F2A2A2A2A2A2A2A2F0A44656275740A4D6F6E536572766575723D536572
7665757246747028225570734674703A2F2F6C6F63616C3A323122293B0A0A4D6F6E536572
766575722E4368616E676572436F6E6E6578696F6E2822616E6F6E796D6F7573222C202263
6F6E746163744075702D636F6D702E636F6D22293B0A4D6F6E536572766575722E4368616E
6765724574617454797065446F6E6E6565732854797065446F6E6E6565734173636969293B
0A436F70696572466963686965722822433A2F746D70322F65737361692E747874222C2022
5570734674703A2F2F6C6F63616C3A32312F746D702F65737361692E74787422293B0A4D6F
6E536572766575722E4368616E6765724574617454797065446F6E6E656573285479706544
6F6E6E656573496D616765293B0A436F706965724669636869657228225570734674703A2F
2F6C6F63616C3A32312F746D702F65737361692E646F63222C2022433A2F746D70322F6573
7361692E646F6322293B0A4D6F6E536572766575723D4E756C3B0A46696E205072696E6369
70616C0A0A