Paramétrer une planche d’étiquettes.

Prérequis

  • Le fichier de configuration xml d’étiquettes doit être placé dans var/etiquettes
  • Pour activer l’utilisation d’une planche personnalisée, il faut aller dans la configuration des liens du terminal et mettre dans le champ etiquette du lien ImpressionPatient, 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 (version 3.12)

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 à http://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

<?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>