Paramétrer une planche d’étiquettes.

PREREQUIS

  • Le fichier de configuration xml d’étiquettes doit être placé dans var/etiquettes
  • Pour activer l’utilisation d’une planche personnalisée, il faut :
    • Dans Fiche/ Gestion Fiche Urgences / Liens : pour le lien « Impression patient« 
    • Renseigner le champ « Etiquette » par le nom du fichier xml désiré (sans l’url ni l’extension)
  • Si le nom du fichier n’est pas renseigné dans ce menu, le fichier utilisé sera meta/etiquettes_default.xml (attention, ce fichier est écrasé à chaque mise à jour)
  • Le fichier doit être édité en UTF8

DESCRIPTION DU XML

  • Toutes les mesures sont en mm
 <?xml version="1.0" encoding="UTF-8" ?>
  • Déclaration de la version et de l’encodage
 <root orientation="P" taille="A4">
  • orientation : orientation de la feuille : P (portrait) ou L (landscape)
  • taille : taille de la feuille

PLANCHE

 <planche margin_top="13.5" margin_left="15" et_taille="70" et_hauteur="36" nb_cols="3" nb_lignes="8">
  • Il peut y avoir plusieurs planches, généralement une seule.
  • margin_top : marge entre le haut de la page et la première ligne de la première étiquette
  • margin_left : marge entre le bord de la page et la première lettre de la première étiquette
  • et_taille : largeur de l’étiquette
  • et_hauteur : hauteur de l’étiquette
  • nb_cols : nombre de colonnes d’étiquettes
  • nb_lignes : nombre de lignes d’étiquettes

ETIQUETTE

   <etiquette intervalle="3.1" font="times" font_size="8" margin_right="3">
  • contient l’impression des petites étiquettes
  • intervalle : décalage à effectuer pour passer d’une ligne à une autre
  • font : police d’écriture utilisée
  • font_size : taille de la police d’écriture
  • margin_right : marge droite (espace avec l’étiquette suivante), utilisée pour caler les textes écrits à droite

LIGNE

     <ligne>
  • représente une ligne de texte, si elle est vide, cela fera simplement un saut de ligne
       <left>
       <right>
       <center>
  • ces trois balises ne peuvent chacune apparaître qu’une fois dans une balise
<ligne />
  • bold : bold= »1″ pour mettre en gras
         <text type="const"></text>
  • il peut y avoir autant de balises text que besoin dans une balise left/right/center
  • type : const (texte en du dans le xml) / func (code php ex : $this->patient->getNomu() )
       <barcode size="9" ml="7" mt="7" y="3">"*".$this->patient->getIlp()."*"</barcode>
  • enfant de la balise
<ligne />
  • barcode permet d’insérer un code barre en fonction de la valeur placée en textNode
  • size : taille de police pour le code barre
  • ml : marge gauche (décalage du bord de l’étiquette)
  • mt : marge haute (décalage par rapport à la ligne précédente)
  • mb : marge basse (décalage plus important de la ligne suivante)

AGREGAT

Un agrégat est un regroupement d’étiquettes sous une seule (ex. pertuis), avec un texte différent. Enfant de la balise <planche />, il contient des <ligne />

   <agregat debut_x="0" debut_y="0" fin_x="3" fin_y="1" intervalle="4" font="times" font_size="12">
  • debut_x : numéro de colonne auquel l’agrégat commence (numérotation à partir de 0)
  • debut_y : numéro de ligne auquel l’agrégat commence (numérotation à partir de 0)
  • fin_x : numéro de colonne à laquelle l’agrégat se termine (inclus) (numérotation à partir de 0)
  • fin_y : numéro de ligne à laquelle l’agrégat se termine (inclus) (numérotation à partir de 0)
  • intervalle, font et font_size idem que pour <etiquette />

MODIFIER LA POLICE DU CODE BARRE

Par défaut, la police utilisée par le code barre est Code39. Pour la modifier, il faut :

  1. Générer le php correspondant au ttf grâce à https://www.fpdf.org/makefont/
  2. Uploader les fichers .php et .ttf sur le serveur TU, dans [Chemin_TU]/classes_ext/fonts/
  3. Renseigner l’attribut font de la balise barcode dans le xml de l’étiquette
<!-- Pour cet exemple, les fichiers Code39WideRegular.php et Code39WideRegular.ttf doivent être uploadés sur le serveur -->
<ligne><barcode font="Code39WideRegular" size="16" ml="10" mt="5" mb="8">$this->patient->getNSej()</barcode></ligne>

EXEMPLE DE FICHIER XML

<?xml version="1.0" encoding="UTF-8" ?>
<root orientation="P" taille="A4">
        <planche margin_top="13.5" margin_left="15" et_taille="70" et_hauteur="36" nb_cols="3" nb_lignes="8">
                <etiquette intervalle="3.1" font="times" font_size="8" margin_right="3">
                        <ligne><left><text type="const">Nom :</text><text type="func">$this->patient->getNomu()</text></left></ligne>
                        <ligne><left><text type="const">Prénom :</text><text type="func">$this->patient->getPrenom()</text></left></ligne>

                        <ligne>
                                <left>
                                        <text type="func">utf8_decode("N&#233;") . ($this->patient->getSexe() == "F" ? "e" : "") . " le :"</text>
                                        <text type="func">$this->getDateNaissance()</text>
                                        <text type="func">"(".$this->patient->getAgeYears()."ans)"</text>
                                </left>
                        </ligne>

                        <ligne><left><text type="const">Sexe :</text><text type="func">$this->getSexeTexte()</text></left></ligne>
                        <ligne><left><text type="const">Le :</text><text type="func">$this->patient->getDateAdmission()</text></left></ligne>
                        <ligne><barcode size="9" ml="7" mt="7" mb="3">"*".$this->patient->getIlp()."*"</barcode></ligne>                        
                        <ligne><left><text type="const">IPP :</text></left></ligne>
                        <ligne><left><text type="const">Nom jf :</text><text type="func">$this->getNomp()</text></left></ligne>
                </etiquette>
        </planche>
</root>