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 :
- Générer le php correspondant au ttf grâce à https://www.fpdf.org/makefont/
- Uploader les fichers .php et .ttf sur le serveur TU, dans [Chemin_TU]/classes_ext/fonts/
- 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é") . ($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>