OPALE - 10.0 - KB

La police utilisée sur mon impression n'est pas bonne

De MappingDoc
Révision datée du 13 janvier 2021 à 08:58 par Jdieu (discussion | contributions) (Gestion des polices au sein du fichier PCL)

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 est comme ceci :

  • Définition des ressources utilisées par le flux (Fond de page et polices)
  • Appel de ces ressources au niveau page

Dans ce chapitre nous allons voir comment lire le flux PCL pour repérer ces 2 étapes.

Fonctionnement Unicode

  • Fond de page :
    • 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
    • Appel de la police dans le flux PCL :
      • 1er Police fond de page : ESC(1X
      • 2ième Police fond de page : ESC(2X
      • Etc
    • Définition du fond de page dans le flux PCL :
      • &f00001y8x0X (avec 00001 correspond au numéro de police dans le lstobj)
    • Appel du fond de page dans le flux PCL :
      • &f00001y2X (défini au niveau page)
  • Partie dynamique MAP :
    • 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)
    • 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)
      • 3ième Police partie MAP : ESC(15002X (peu importe le numéro de la police dans le lstobj)
      • etc

Fonctionnement non Unicode

  • Fond de page :
    • 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
    • Appel de la police dans le flux PCL :
      • 1er Police fond de page : ESC(30000X
      • 2ième Police fond de page : ESC(30001X
      • Etc
    • Définition du fond de page dans le flux PCL :
      • &f00001y8x0X (avec 00001 correspond au numéro de police dans le lstobj)
      • Appel du fond de page dans le flux PCL :
      • &f00001y2X (défini au niveau page)
  • Partie dynamique MAP :
    • 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)
    • 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ématiques possibles

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.