Aller directement à la fin des métadonnées
Aller au début des métadonnées

Vous regardez une version antérieure (v. /wiki/spaces/PAI/pages/10544907477/Compl+ments+impressions+caract+res) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

Impressions Caractères

La lecture de cette annexe nécessite une connaissance préalable des principes généraux gouvernant les impressions sous Harmony. Ces principes sont décrits au chapitre Impressions.

Attributs d'impression caractères


Contrairement aux impressions graphiques, les impressions "Caractères" ne disposent pas de fonctions évoluées telles que tracé de cadre ou impression d'image. Toutefois, des instructions simples peuvent être envoyées à l'imprimante pour que celle-ci sélectionne des attributs d'impression et les affecte aux caractères imprimés.
Les attributs les plus courants sont les suivants :

  • Style : caractères gras ou italiques.

  • Attributs : caractères soulignés, barrés, en exposant, en indice.

  • Taille de police : Pica5 (expansée), Pica10 (normale), Pica17 (comprimée), etc.

  • Couleur des caractères et couleur du fond.

  • Orientation (portrait ou paysage).

Mais d'autres "attributs" sont envisageables (y compris des attributs "globaux" comme par exemple la sélection d'un bac d'alimentation).
Remarque :
En mode graphique, les attributs d'impression sont simulés : voir la rubrique Simulation des attributs d'impression caractères en mode graphique.

Impressions Harmony en mode caractères

Rappelons d'abord les points essentiels concernant les éditions en mode caractères :

  • Les programmes envoient au driver les textes, éventuellement agrémentés d'attributs d'impression simples (gras, italique, souligné, caractères comprimés, expansés, etc.).

  • Les drivers émettent les caractères sur le port d'entrée-sortie mais n'effectuent pas de traduction des attributs d'impression. Pour que les applications restent indépendantes du matériel, Harmony propose une codification standard des attributs et prend en charge leur traduction en commandes reconnues par le matériel. Nous y reviendrons à la rubrique Codification des attributs d'impression du livre consacré aux fichiers descriptifs d'imprimante.

  • Les fonctions de paramétrage du gestionnaire d'impression ne sont plus accessibles.

  • Les états ne peuvent pas être visualisés à l'écran.

  • Le jeu de caractères utilisé par Harmony suit la codification ANSI.


Mise en oeuvre des impressions spool en mode caractères

Si plusieurs imprimantes sont installées sur un site, l'utilisateur doit pouvoir sélectionner l'une d'entre elles lorsqu'il effectue une édition. Pour cela (à condition toutefois que le fichier descriptif d'imprimante convienne), on peut toujours changer l'imprimante par défaut de Windows.
Mais Harmony propose une manière plus simple et plus rapide qui consiste à choisir le "modèle d'imprimante" approprié, depuis le menu de l'application (Cf. rubriques Gestion des modèles d'imprimante et Liaison entre modèle et imprimante Windows).

Liaison entre modèle et imprimante Windows

Une édition faite par une application Harmony en mode caractères utilise implicitement l'imprimante par défaut de Windows, sans tenir compte du paramétrage effectué pour cette imprimante au niveau du gestionnaire d'impression.
Mais lorsqu'on dispose de plusieurs imprimantes, il est utile d'établir une liaison explicite entre modèle et imprimante.
Pour les impressions en mode caractères, cette liaison se définit au niveau du fichier Divalto.ini :

  • Dans le chapitre générique [Printer] si le modèle ne précise pas de "format pour le spool".

  • Dans le chapitre [Printer-xxxx] si xxxx est le format déclaré dans le modèle.

Gestion des liaisons modèle / imprimante

Pour définir ou modifier une liaison, appelez l'utilitaire xDivaltoPrinters. Celui-ci effectue automatiquement la mise à jour des chapitres [Printer] de Divalto.ini.
Voir aussi les rubriques Méthode de sélection de l'imprimante et Exemple de liaisons modèle / imprimante.
A titre indicatif, un chapitre [Printer] ou [Printer-xxxx] contient une commande "device=..." précisant l'imprimante, le driver et le port d'entrée/sortie. La syntaxe de la commande <device> est la suivante : device=<nom de l'imprimante>,<nom du driver>,<port> Par exemple : device=HP LaserJet Series II,HPPCL,LPT1: device=Epson FX-80,EPSON9E,LPT1:
Une impression "fichier" est possible en remplaçant le port d'entrée / sortie par le nom (complet) d'un fichier. Par exemple : device=Epson FX-80,EPSON9E,c:\Divalto\sys\ficimp

Méthode de sélection de l'imprimante

Harmony emploie la méthode suivante pour sélectionner une imprimante :

  • Si le modèle précise un format d'impression (format pour le spool), Harmony recherche un chapitre [Printer-xxxx] référençant ce format. On associe ainsi une imprimante à chaque format : [Printer-xxxx] device=... [Printer-yyyy] device=...

  • Si le modèle ne précise pas de format ou si le format n'est pas référencé comme indiqué ci-dessus, Harmony recherche le chapitre générique [Printer]. On associe ainsi une imprimante aux impressions caractères sans format : [Printer] device=...

  • Enfin, si aucun de ces chapitres n'est présent dans Divalto.ini, c'est l'imprimante par défaut de Windows qui est utilisée.

Remarque : aucune différence n'est faite au niveau du format entre lettres minuscules et majuscules.

Exemple de liaisons modèle / imprimante

Mon installation comporte deux imprimantes : une imprimante gérée par le fichier descriptif FIHIMP1 en mode caractères et par un driver EPSON en mode graphique, une imprimante gérée par le fichier descriptif FIHIMP2 en mode caractères et par un driver HP en mode graphique :

Application Harmony Application Harmony
Etat graphique Etat caractères Etat graphique Etat caractères
FIHIMP1 FIHIMP2


Driver EPSON Driver LASER JET
pour IMP1 pour IMP1 pour IMP2 pour IMP2


SPOULEUR


Imprimante 1 Imprimante 2


Une solution consiste ici à :

  • Installer les drivers Windows pour les deux imprimantes.

  • Créer deux modèles d'impression dans Harmony : Modèle EPS (format spool = EPS). Modèle HP (format spool = HP).

  • Créer par xDivaltoPrinters les sections : [Printer-EPS] device=Epson FX-80,EPSON9E,LPT1: [Printer-HP] device=HP laserJet Serie II,HPPCL,LPT2: [GraphPrinter-EPS] device=Epson FX-80,EPSON9E,LPT1: [GraphPrinter-HP] device=HP laserJet Serie II,HPPCL,LPT2:

Fichiers descriptifs d'imprimante Harmony

Pour chaque type d'imprimantes utilisées lors d'une édition en mode caractères, Harmony utilise un fichier paramètres dénommé "fichier descriptif d'imprimante". Il s'agit d'un fichier au format .txt contenant, pour chaque attribut d'impression, la commande correspondante adaptée au matériel concerné.
Des fichiers descriptifs "génériques", correspondant aux types d'imprimantes les plus courants, sont livrés en standard avec Harmony. Conventionnellement, ces fichiers sont préfixés par "FIH" :

  • FIHPROP.txt correspond au mode Proprinter (IBM).

  • FIHESCP.txt correspond au mode ESC/P (Epson, Seiko, Citizen).

  • FIHLJ.txt correspond au mode LaserJet (HP). FIHLJ2.txt correspond au mode LaserJet avec un matériel ne reconnaissant pas les caractères expansés. FIHLJ prend une police PICA 5 pour les caractères expansés. Si l'imprimante ne possède pas ce type de police (reportez-vous au résultat rendu par le programme LISCAR), utilisez FIHLJ2. FIHLJ2 trace les caractères expansés à partir d'une police PICA 10 mais avec un espacement "PICA 5" entre les caractères.


Remarques :

  • Pour ses éditions caractères en mode graphique, Harmony utilise également un fichier descriptif d'imprimante (à choisir en FihWgra et FihWgrc).

  • Il est également possible de créer vos propres fichiers descriptifs.

  • Utilisez le fichier FihNull.txt si l'imprimante ne reconnaît aucun attribut.


Liste des fichiers descriptifs d'imprimante standard

Fichier descriptif

Type d'imprimante

FihEscp FihLj FihLj2 FihProp FihWgra FihWgrc

FihNull

Emulation Esc/P. Emulation Laserjet. Emulation Laserjet (avec un matériel ne reconnaissant pas les caractères expansés). Emulation Proprinter. A utiliser impérativement pour les éditions caractères en mode graphique (quelque soit le matériel).

A utiliser lorsque l'imprimante ne reconnaît aucun attribut.

Codification des attributs d'impression

En mode caractères, le driver Windows n'interprète pas les caractères envoyés (il n'est utilisé que pour émettre les caractères sur le port d'entrée-sortie). Afin que les programmes d'application restent indépendants des matériels utilisés, une interface spécifique à Harmony a été définie pour traiter les attributs d'impression caractères.
Les commandes de cette interface sont stockées dans les fichiers descriptifs d'imprimantes, fichiers au format .txt (on peut donc les saisir par exemple avec Notepad ou Wordpad).
Principe

  • Par la suite, on nomme "commande" une séquence de caractères qui sera interprétée par le matériel comme une demande de changement d'attribut. Une commande ne peut pas être littérale car elle serait interprétée comme du texte à imprimer. Une commande est reconnue par l'imprimante en tant que telle parce qu'elle commence par un caractère dit d'échappement (ainsi nommé car il s'agit généralement du caractère Echap, de code hexadécimal $1B). Exemple : le passage en gras en mode Esc/P est commandé par la séquence $1B $45. Bien évidemment, le programme pourrait lui-même envoyer les "vraies" séquences de commande à l'imprimante. Mais dans ce cas, il serait totalement dépendant du matériel, ce qui n'est pas souhaitable. La solution consiste alors à envoyer non pas les "vraies" séquences d'échappement mais des séquences propres à Harmony. Les séquences reconnues par Harmony sont conventionnellement comprises entre $1B $E0 et $1B $FF. (Mais attention $1B $E2 et $1B $E3 sont réservées car envoyées automatiquement en début et fin d'impression - traduction en standard par les commandes PrintBegin et PrintEnd.)

  • Un nom de commande est affecté à chaque séquence conventionnelle. Remarque : ce nom peut être librement choisi (à quelques exceptions près où le nom est figé). Exemple : $1B $E4 BoldBegin

  • Ensuite, on associera à chaque nom de commande la "vraie" séquence à envoyer à l'imprimante. Exemple : BoldBegin $1B $45

  • De plus, les changements de taille de police peuvent être "empilés". Cela signifie que la police, obtenue après une commande de changement de taille, pourra dépendre de la taille de police actuelle. Exemple : la commande de passage en caractères expansés aura pour résultat deux tailles différentes, selon que la taille actuelle est normale ou comprimée.

  • Enfin, on pourra également indiquer le jeu de caractères à utiliser (ANSI ou PC8).


Chapitres
L'interface est subdivisée en 4 chapitres :

[Translate]

Permet d'associer les noms de commande aux séquences d'échappement Harmony.

[Cmd]

Permet d'associer les séquences d'échappement matérielles aux noms de commandes.

[Stack]

Permet de définir la taille de police à utiliser pour les modes "Normal", "Comprimé", "Expansé", "Elite", etc. ainsi que les règles en cas de changement de tailles en cascade.

[Options]

Permet de définir des options (actuellement, uniquement le jeu de caractères).



Chapitre [Translate]
Ce chapitre permet d'associer un nom de commande à chaque séquence d'échappement Harmony. Si une séquence ne précise aucune commande, rien ne sera envoyé à l'imprimante à la rencontre de cette séquence.
Exemple :
[Translate]
$1b $e0 NormalBegin $1b $e1 NormalEnd $1b $e2 PrintBegin $1b $e3 PrintEnd $1b $e4 BoldBegin ...
Remarques :

  • Le premier caractère d'une ligne significative doit être en position 1.

  • Un ";" en position 1 indique une ligne de commentaire.

  • La casse des noms de commande n'est pas significative.

  • Un nom de commande est limité à 32 caractères et peut être choisi librement.

  • Certaines séquences Harmony sont stockées dans des champs de l'enregistrement System : voir la rubrique Codes d'attribut d'impression prédéfinis.


Chapitre [Cmd]
Ce chapitre permet d'associer la chaîne de caractères à envoyer à l'imprimante à chaque nom de commande. Une chaîne est composée de texte(s) délimité(s) par des apostrophes ou des guillemets et/ou de caractères hexadécimaux au format $XX et/ou de noms de commande.
Exemple :
[Cmd] Pica5 $1B $57 '0' $1B $50 $12 $1B $57 $31 Pica12 $1B $57 "0" $1B $4D BoldBegin $1B $45 BoldEnd $1B $46 ...
Remarques :

  • Un nom de commande doit commencer en position 1 et est limité à 32 caractères.

  • Un ";" en position 1 indique une ligne de commentaire.

  • La casse des noms de commande n'est pas significative. Mais attention, celle des ordres à envoyer à l'imprimante doit être respectée.

  • La taille d'une commande à envoyer à l'imprimante est limitée à 64 caractères.

  • Une commande peut être "vide", indiquant qu'il n'y a rien a envoyer. Exemple : PrintEnd

A titre indicatif, voici une liste des noms de commande que vous trouverez dans les fichiers descriptifs standard :

  • Pica5 / Pica10 / Pica12 / Pica17 / Pica20 / Pica85 (tailles de police)

  • BoldBegin / BoldEnd (style gras)

  • ItalicBegin / ItalicEnd (style italique)

  • UnderlineBegin / UnderlineEnd (attribut souligné)

  • SuperScriptBegin / SuperScriptEnd (attribut exposant)

  • SubScriptBegin / SubScriptEnd (attribut indice)

  • StrikeThroughBegin / StrikeThroughEnd (attribut barré)

  • OtherBegin / OtherEnd (autre attribut)

  • Landscape / Portrait (orientation)

  • Lpi6 / Lpi8 (nombres de lignes par pouce)

  • BlackFont / BlueFont / GreenFont / CyanFont / RedFont / MagentaFont / YellowFont / WhiteFont (couleurs des caractères)

  • BlackBackGround / BlueBackGround / GreenBackGround / CyanBackGround / RedBackGround / MagentaBackGround / YellowBackGround / WhiteBackGround (couleurs du fond)

  • PrintBegin / PrintEnd (initialisation et fin d'impression)


Chapitre [Stack]
Ce chapitre permet de définir la taille de police à utiliser pour les modes "Normal", "Comprimé", "Expansé", "Elite", etc. ainsi que les règles en cas de changement de tailles en cascade. Vous pouvez en effet envoyer une commande de changement de taille dépendant de la taille de police courante. Par exemple, la commande de passage en caractères expansés peut avoir pour résultat deux tailles différentes, selon que la taille courante est normale ou comprimée.
Dans ce chapitre, figurent également des noms de commande mais celles-ci ne sont pas directement associées à une séquence à envoyer à l'imprimante. Elles font par contre appel aux commandes de changement de taille proprement dites (en standard : Pica5, Pica12, etc.) qui elles sont dans le chapitre [Cmd]. Exemple : NormalBegin/NormalEnd * PICA10
Une commande du chapitre [Stack] doit respecter les règles syntaxiques suivantes :

  • En colonne 1, doit figurer le nom de la commande "début de mode" suivi d'un "/" suivi du nom de la commande "fin de mode".

  • Derrière, on indiquera zéro, un ou plusieurs couples de noms de commande de taille indiquant la taille à utiliser en fonction de la taille en cours. Le second nom du couple spécifie la taille de police à envoyer SI la taille de police en cours correspond au premier nom du couple. Les 2 noms d'un couple doivent être séparés simplement par un espace, les différents couples par une virgule. Une virgule doit également suivre le dernier couple pour le séparer du nom de commande de taille par défaut (voir paragraphe suivant).

  • Derrière, doit toujours figurer le nom d'une commande de taille "par défaut" précédée de " "{*}. Cette taille sera envoyée si la taille de police courante n'apparaît pas en premier dans l'un des couples précédents (ou si aucun couple de noms n'est spécifié).

Exemple :
[Stack] NormalBegin/NormalEnd * PICA10 ExpandedBegin/ExpandedEnd PICA10 PICA5,PICA17 PICA85,PICA85 PICA85, *PICA5 ...
Dans cette exemple, la commande NormalBegin enverra la commande PICA10 dans tous les cas ; la commande ExpandedBegin enverra la commande PICA5 si la taille en cours est PICA10, la taille PICA85 (8,5 caractères/pouce) si la taille en cours est PICA17 ou déjà PICA85, la taille PICA5 dans tous les autres cas.
Remarques :

  • A la rencontre de la commande de "début de mode", Harmony envoie donc la taille demandée dans ce chapitre et "empile" la nouvelle taille. A la rencontre de la commande de "fin de mode", Harmony "désempile" la taille en cours, calcule et envoie la commande permettant de retrouver la taille précédente.

  • En principe, ce chapitre peut rester inchangé dans un fichier personnalisé car il ne dépend pas, à priori, du matériel.

A titre indicatif, voici une liste des noms de commande que vous trouverez dans les fichiers descriptifs standard :

  • NormalBegin/NormalEnd

  • CompressedBegin/CompressedEnd

  • ExpandedBegin/ExpandedEnd

  • EliteBegin/EliteEnd


Chapitre [Options]
Contient une clé qui indique le jeu de caractères de l'imprimante (ANSI ou PC8).
Exemple : [Options] ANSI

Fonctions avancées

  • Tests dans le chapitre [Cmd]. Une commande du chapitre [Cmd] peut effectuer un test simple sur le taille de la police en cours et envoyer une commande si le test est positif (voir un exemple réel dans le fichier fihlj2.txt), en écrivant par exemple :

;si on est en PICA5, passer en PICA5B pour rectifier les caractères if(PICA5 PICA5B)

  • Tracés de cadre. Les noms de commande FrameBegin et FrameEnd sont figés. Ces commandes sont automatiquement programmées par Harmony en cas d'impression d'un cadre (masque Xwin caractères). A ajouter au fichier descriptif de votre imprimante si celle-ci possède une police permettant d'imprimer des cadres (mais non traités dans les fichiers standard).

  • Traitement de la couleur. La couleur des caractères et la couleur de fond font l'objet d'un traitement particulier. Pour envoyer ces couleurs, un programme doit émettre :


    • La séquence $1B $EA (par exemple), à traduire dans le fichier descriptif par la commande de nom figé COLOR.

    • Immédiatement suivie de la couleur de caractères et de la couleur de fond (valeurs numériques toutes deux comprises entre "1" et "8") : La valeur "1" correspond à la couleur Noire (noms de commande figés BlackFont et BlackBackGround). La valeur "2" correspond à la couleur Bleue (noms de commande figés BlueFont et BlueBackGround). La valeur "3" correspond à la couleur Verte (noms de commande figés GreenFont et GreenBackGround). La valeur "4" correspond à la couleur Cyan (noms de commande figés CyanFont et CyanBackGround). La valeur "5" correspond à la couleur Rouge (noms de commande figés RedFont et RedBackGround). La valeur "6" correspond à la couleur Magenta (noms de commande figés MagentaFont et MagentaBackGround). La valeur "7" correspond à la couleur Jaune (noms de commande figés YellowFont et YellowBackGround). La valeur "8" correspond à la couleur Blanche (noms de commande figés WhiteFont et WhiteBackGround).


  • Début et fin d'impression. Au début de l'impression, Harmony envoie automatiquement la séquence ($1B $E2), traduite en standard par la commande PrintBegin. A la fin de l'impression, Harmony envoie automatiquement la séquence $1B $E3, traduite en standard par la commande PrintEnd. Ces commandes peuvent être utilisées par exemple pour sélectionner un bac d'alimentation au début de l'impression et rétablir le bac par défaut à la fin de l'impression.


Codes d'attribut d'impression prédéfinis

L'enregistrement System contient les champs de codage d'attribut suivants :

Zone système

Attribut d'impression

System.Norm ($1B $E0)

Caractères normaux début

System.Eonc ($1B $E1)

Caractères normaux fin

System.Qualt ($1B $E4)

Qualité courrier début

System.Eoq ($1B $E5)

Qualité courrier fin

System.Compr ($1B $E6)

Caractères comprimés début

System.Eoc ($1B $E7)

Caractères comprimés fin

System.Expnd ($1B $EC)

Caractères expansés début

System.Eoe ($1B $ED)

Caractères expansés fin

System.Abc1 ($1B $F0)

Jeu de caractères 1 début

System.Eoa1 ($1B $F1)

Jeu de caractères 1 fin

System.Abc2 ($1B $F2)

Jeu de caractères 2 début

System.Eoa2 ($1B $F3)

Jeu de caractères 2 fin

System.Gra1 ($1B $F4)

Mode graphique 1 début

System.Eog1 ($1B $F5)

Mode graphique 1 fin

System.Gra2 ($1B $F6)

Mode graphique 2 début

System.Eog2 ($1B $F7)

Mode graphique 2 fin



Simulation des attributs d'impression caractères en mode graphique

Pour ses éditions caractères en mode graphique, Harmony utilise la police Terminal en mode :

  • 10 Cpi (10 caractères par pouce).

  • 6 Lpi (6 lignes par pouce).

Harmony simule aussi les attributs d'impression prédéfinis suivants :

Attribut d'impression

Zone système

Fonction simulée

Caractères normaux début / fin

System.Norm / System.Eonc

Mode 10 Cpi (Pica10)

Qualité courrier début

System.Qualt

Caractères gras

Qualité courrier fin

System.Eoq

Fin gras

Caractères comprimés début

System.Compr

Mode 17 Cpi (Pica17)

Caractères comprimés fin

System.Eoc

Mode 10 Cpi (Pica10)

Caractères expansés début

System.Expnd

Mode 5 Cpi (Pica5)

Caractères expansés fin

System.Eoe

Mode 10 Cpi (Pica10)

Jeu de caractères 1 début

System.Abc1

Caractères italiques

Jeu de caractères 1 fin

System.Eoa1

Fin italiques

Jeu de caractères 2 début

System.Abc2

Caractères soulignés

Jeu de caractères 2 fin

System.Eoa2

Fin soulignés

Mode graphique 1 début

System.Gra1

Mode 12 Cpi (Pica12 <=> Elite)

Mode graphique 1 fin

System.Eog1

Mode 10 Cpi (Pica10)


Test d'impression en mode caractères

Le programme LISCAR.dhop fait un test d'édition en mode caractères. Il est conseillé de le lancer pour chaque type d'imprimante.

Problèmes d'impression en mode caractères

Si vous constatez un problème lors d'une impression Harmony en mode caractères et si l'imprimante fonctionne correctement sous Windows :

  • Si l'état n'est pas enregistré dans le spouleur et si le problème concerne un programme en particulier (les impressions fonctionnent parfaitement pour d'autres programmes Harmony), vérifiez que ce programme libère l'imprimante (instruction Diva PrintEnd). C'est cette libération (ou à défaut une instruction d'enchaînement de programme) qui déclenche l'édition au niveau du spouleur de Windows.

  • Si l'édition sort sur l'imprimante sans attribut d'impression (le mode comprimé ou expansé ne fonctionne pas, par exemple - des caractères parasites apparaissent probablement à l'endroit où un changement d'attribut devrait se produire-), le fichier descriptif imprimantes utilisé n'est pas le bon. Consultez en annexe la liste des fichiers fournis avec Harmony. Le nom du fichier descriptif est paramétré au niveau du modèle d'imprimante (STD par défaut).

  • Aucune étiquette