ERPNext
Impression brute
L'impression brute envoie au langage natif de l'imprimante, sans passer par le pilote. Elle sert aux tickets, étiquettes et codes-barres.
À quoi sert l'impression brute
Introduite en version 12, l'impression brute (Raw Printing) envoie une chaîne de commandes directement à l'imprimante, dans son langage natif.
Beaucoup d'imprimantes thermiques ont besoin de ces commandes pour imprimer un code-barres, un ticket ou une étiquette. L'impression brute contourne le plus souvent les pilotes, ce qui la rend rapide et fiable. Elle peut aussi couper le papier du ticket ou ouvrir un tiroir-caisse.
Installer QZ Tray
Téléchargez et installez QZ Tray sur l'ordinateur auquel l'imprimante thermique est branchée. L'application est sur son site officiel. Windows, macOS et Linux sont pris en charge. Pendant l'installation, Java est proposé s'il manque : il faut l'installer pour terminer. Le mode d'emploi de QZ Tray est sur le wiki QZ.
Créer un format en commandes brutes
Jinja sert dans les commandes brutes comme dans un format HTML personnalisé.
- Ouvrez Accueil > Paramètres > Impression > Format d'impression.
- Créez un format.
- Choisissez le DocType.
- Cochez Format personnalisé et Impression brute.
- Remplissez le champ Commandes brutes avec les commandes à envoyer.
- Enregistrez.
Tout langage d'imprimante à base de chaînes peut être utilisé. Écrire ces commandes demande le langage natif fourni par le fabricant, dans son manuel développeur.
Activer le réglage
- Ouvrez Accueil > Paramètres > Impression > Réglages d'impression > Impression brute.
- Cochez Activer l'impression brute.
- Enregistrez.
Imprimer depuis l'aperçu
- Choisissez le format. Pour un format en commandes brutes, le message « Aucun aperçu disponible » remplace l'aperçu.
- Cliquez sur imprimer.
- Acceptez l'invite de connexion de QZ Tray pour l'action lancée (raccourci Alt + A).
- On peut demander la correspondance format-imprimante. Elle envoie les commandes à la bonne imprimante. L'imprimante doit être installée sur l'ordinateur pour être associée. Cette correspondance est stockée localement : il faut la refaire sur chaque poste client. On la modifie avec le bouton Réglages de l'imprimante.
Depuis un script client
Une commande d'impression peut partir sur un événement (validation, enregistrement, amendement). Un script client peut le faire. La page d'origine décrit quatre fonctions.
frappe.ui.form.qz_connect enveloppe la connexion à QZ Tray. Elle renvoie une promesse résolue quand la connexion est établie. Les connexions actives et inactives se résolvent quand même : on peut l'appeler à chaque envoi.
frappe.ui.form.qz_connect()
.then(function () {
return qz.print(config, data);
})
.then(frappe.ui.form.qz_success)
.catch(err => {
frappe.ui.form.qz_fail(err);
});qz est l'objet global de la bibliothèque qz-tray.js.
frappe.ui.form.qz_get_printer_list donne la liste des imprimantes vues par QZ Tray. La promesse se résout en un tableau de chaînes.
frappe.ui.form.qz_get_printer_list().then(
// action sur la liste des imprimantes
);frappe.ui.form.qz_success affiche l'alerte « Impression envoyée à l'imprimante ». À appeler après une commande réussie.
frappe.ui.form.qz_fail affiche le message d'erreur. À appeler si la connexion à QZ Tray échoue.
On peut aussi appeler directement les fonctions de qz-tray.js via l'objet qz. La documentation de la bibliothèque est sur qz.io/api. L'objet qz n'est initialisé qu'après le premier appel à frappe.ui.form.qz_connect. S'il faut l'objet avant, on utilise frappe.ui.form.qz_init.
