OPALE - 10.0 - KB
La police utilisée sur mon impression n'est pas bonne
Introduction
Il se peut parfois et notamment avec des versions antérieures à la 10.1 d'avoir des problème de tailles de polices sur les impressions. Cela est dû à des problèmes de ressources liés à une mauvaise utilisation du fichier ressource lstobj.txt Cette documentation explique comment diagnostiquer ce problème et comment lire un flux PCL.
Gestion des polices au sein du fichier PCL
La structure générale d'un fichier PCL Fonctionnement Unicode :
- Fond de page : o Définition de la police dans le flux PCL : 1er Police fond de page : ESC*c1D 2ième Police fond de page : ESC*c2D etc o Appel de la police dans le flux PCL : 1er Police fond de page : ESC(1X 2ième Police fond de page : ESC(2X Etc
o Définition du fond de page dans le flux PCL : &f00001y8x0X (avec 00001 correspond au numéro de police dans le lstobj) o Appel du fond de page dans le flux PCL : &f00001y2X (défini au niveau page)
- Partie dynamique MAP : o Définition de la police dans le flux PCL : 1er Police partie MAP : ESCc15000D (peu importe le numéro de la police dans le lstobj) 2ième Police partie MAP : ESCc15001D (peu importe le numéro de la police dans le lstobj) 3ième Police partie MAP : ESCc15002D (peu importe le numéro de la police dans le lstobj)
o Appel de la police dans le flux PCL : 1er Police partie MAP : ESC(15000X (peu importe le numéro de la police dans le lstobj) 2ième Police partie MAP : ESC(15001X (peu importe le numéro de la police dans le lstobj) 2ième Police partie MAP : ESC(15002X (peu importe le numéro de la police dans le lstobj) etc
Fonctionnement non Unicode :
- Fond de page : o Définition de la police dans le flux PCL : 1er Police fond de page : ESC*c30000D 2ième Police fond de page : ESC*c30001D etc o Appel de la police dans le flux PCL : 1er Police fond de page : ESC(30000X 2ième Police fond de page : ESC(30001X Etc
o Définition du fond de page dans le flux PCL : &f00001y8x0X (avec 00001 correspond au numéro de police dans le lstobj) o Appel du fond de page dans le flux PCL : &f00001y2X (défini au niveau page)
- Partie dynamique MAP : o Définition de la police dans le flux PCL : 1er Police partie MAP : ESC*c00001D (avec 00001 correspond au numéro de police dans le lstobj) 2ième Police partie MAP : ESC*c00002D (avec 00002 correspond au numéro de police dans le lstobj)
o Appel de la police dans le flux PCL : 1er Police partie MAP : ESC(00001X (avec 00001 correspond au numéro de police dans le lstobj) 2ième Police partie MAP : ESC(00002X (avec 00002 correspond au numéro de police dans le lstobj) etc
Problématique possible :
1) Sur mon impression, j’au du texte qui n’apparait pas avec la bonne taille (souvent trop petit)
Cause probable : Dans le flux PCL généré, nous avons un appel de police pour laquelle aucun définition n’a été faite. Soit en d’autres termes, nous avons par exemple un ESC(15000X (appel de la police 15000) qui n’a pas son pendant ESCc15000D (définition de la police 15000) par conséquent…
Raison technique : Nous lisons la table MAPLNK (ou le fichier spt sur WIN/LIN), à l’intérieur de celui-ci nous avons une liste de ressources. (police et fond de page). Pour chacune de ces ressources et plus précisement numéro de ressources, nous sélectionnons ce même numéro dans la table MAPOBJ . Nous prenons le numéro et son contenu et nous le plaçons dans le flux PCL pour la partie définition. Or dans le cas où aucune correspondance n’est trouvé entre numéro de ressource du MAPLNK et MAPOBJ, alors aucune définition ne sera insérée dans le flux PCL. Par conséquence, on se retrouve bien avec l’appel sans la définition. Ceci est dût à un conflit de ressource générée à causae d’une mauvaise utilisation du lstobj.txt
Solution : Exécuter la requete suivant, supprimer tous les formats listés par celle-ci, regénérer le lstobj par un CALL MAP823, regénéré toutes les maquettes supprimer en s’assurant de bien utiliser ce nouveau lstobj.