Juste histoire de parler…
Certains programmes d’édition peuvent être très complexes en termes de traitement d’informations fixes (tableaux, texte aligné/justifié, par exemple) et d’informations variables. L’instruction « PRINT FILE » simplifie la programmation en traitant l’ensemble des informations fixes d’un état sous forme d’un fichier-formulaire imprimable.
Un simple traitement de texte mode caractères des années 80 permet de créer sous MS/DOS un tel formulaire de qualité bureautique très convenable qui peut d’ailleurs éviter dans certains cas l’utilisation de pré-imprimés. Imprimer avec Informix des tableaux complexes, du texte aligné/justifié en différentes polices de tailles différentes, en variant l’interligne… devient facile.
En sauvegardant le formulaire en tant que fichier .prn (PCL 5), il suffit ensuite d’y apporter quelques modifications rudimentaires en début et en fin de fichier :
1. Sous MS/DOS : Tout d’abord, il faut ajouter un Carriage-return à la fin de chaque ligne du fichier .prn car sinon le fichier transféré sous Unix ne fera qu’un seul item. Il peut alors dépasser la taille maxi et surtout il devient ingérable sous Vi. L’opération peut se faire de différentes façons, soit avec le traitement de texte lui-même qui joue alors le rôle d’un excellent éditeur de texte, soit en convertissant le fichier MS/DOS en fichier Unix (en deux clics avec Notepad++).
2. Sous MS/DOS ou Unix : Il convient d’intervenir en début de fichier pour dire à l’imprimante de mémoriser la position du curseur « [Esc]&f0S » et lui signifier un interligne nul « [Esc]&l0C » de façon à annihiler les Carriage-return ajoutés qui se traduiraient par des sauts de ligne. Les sauts de ligne sont déjà assurés par des commandes PCL de mouvement de l’index vertical « [Esc]&a+nnV ».
[Esc]&l8c0e69F[Esc]&aR9[Esc]&l0O[Esc]&l0C
[Esc]&f0S(10U(s0p12h10v0s0b3T[Esc]&a+190V(10U(s0p12h10v0s0b3T[Esc]&a2820H╔(10U(s0p12h10v0s3b3TFournisseur[Esc] (10U(s0p12h10v0s0b3T══════════════════════════════════╗
[Esc]&a+20V(10U(s0p12h10v0s0b3T [Esc]&a266H(10U(s1p14v0s0b4148TXXXXXXXXXXXXXXXXXXX
[Esc]&a+80V(10U(s1p14v0s0b4148T[Esc]&a2820H(10U(s0p12h10v0s0b3T║[Esc]&a5580H║
[Esc]&a+60V(10U(s0p12h10v0s0b3T
…/…
3. Toujours sous MS/DOS ou Unix : Il reste en fin de fichier à remplacer les commandes PCL de saut de page et réinitialisation de l’imprimante (générées par le traitement de texte) par la commande « Rappel de la position du curseur ([Esc]&f1S) ».
…/…
[Esc]&f1S
Après l’instruction « PRINT FILE chemin_du_formulaire », le formulaire est donc imprimé et le curseur de l’imprimante repositionné au point d’origine du formulaire. Il ne reste plus au programme qu’à imprimer les variables éventuellement mises en forme par quelques commandes PCL de base (gras, italique, souligné, etc.) et pourquoi pas, à apporter quelques raffinements esthétiques simples grâce au langage GPL/2, comme griser ou encadrer une zone de texte.
Le principe peut bien sûr se sophistiquer pour imprimer en recto-verso sur format A4 ou A3.
… C’était simplement histoire de parler, vous pouvez reprendre vos activités normales…
Partager