L'agent d'impression est un outil visant (initialement) à compenser certaines limitations du client HTML : celui-ci, bridé par le navigateur, ne permet pas aux programmes Diva d'accéder au matériel de la machine locale, en particulier aux imprimantes.
En temps normal, lors d'une impression, le client HTML commandera la génération d'un document PDF sur le serveur, et en proposant le téléchargement, ce qui, entre autres, requiert une action utilisateur pour chaque document.
Ce fonctionnement convient aux clients nomades, mais peut avoir ses limites (impression des payes par exemple) pour les utilisateurs d'un site cloud, ou les utilisateurs d'un site pour lequel seul le client HTML a été choisi.
Pour ces cas, l'agent d'impression est mis à disposition.
Le principe est le suivant:
- après activation de ce mode, les éditions à imprimer sont centralisées sous forme de documents .dhvw dans un répertoire sur le serveur
- l'agent d'impression en lui-même est un programme éxécuté par un client WPF sur un poste dédié du site (physique) concerné et qui scrute le dossier où sont centralisés les éditions générées par les utilisateurs du site. Cet agent déclenche les impressions sur l'imprimante paramétrée puis efface les documents du répertoire après impression.
Paramétrage d'un agent d'impression
Paramétrage d'un format pour le spool en mode Agent d'impression
Il faut modifier ou créer dans xDivaltoPrinters un format pour le spool et cocher la case Agent d'impression
Un sous-répertoire peut être précisé et sera notamment indispensible si plusieurs sites physiques d'une même entité sont desservis en mode Agent d'impression.
Ce format pour le spool doit être propagé pour tous les utilisateurs du site concerné.
Lorsque ce format est utilisé, les impression sont centralisées sur le serveur d'applications dans le répertoire c:\Divalto\DivaltoPointAgent\Local\Tmp.
Pour chaque impression, un fichier .dhvw et un aperçu (image du même nom avec extension .PNG) sont stockées.
Mise en œuvre de l'agent d'impression
Si un poste dédié sur chaque site physique doit fonctionner en mode Agent d'impression, il faut qu'un client léger WPF éxécute le programme suivant (créer un raccourci exécutant la ligne de commande) :
De plus, il faudra, sur ce poste uniquement, paramétrer via xDivaltoPrinters un format pour le spool du même nom que celui utilisé par les utilisateurs, mais qui référencera l'imprimante réelle sur laquelle doivent sortir les impressions.
C'est ce programme qui va scruter le répertoire sur lequel les impressions du site seront centralisées.
Pour chaque document qui s'y trouve, l'agent va:
- afficher l'aperçu du document en cours de traitement
- Lancer DivaltoViewer en mode impression directe pour ce document
- DivaltoViewer va détecter pour le format pour le spool stocké dans le document .dhvw lui-même, et utilisera le format pour le spool de même nom (celui que l'on a créé spécifiquement pour le poste dédié à l'agent d'impression) pour lancer l'impression sur l'imprimante réelle
- xDivaltoAgentImp.dhop va finalement déplacer les documents traités (pour une ré-impression éventuelle) dans le sous-répertoire
- 3. Ré-impression
Pour réimprimer un document, il faut crééer puis lancer un raccourci exécutant la ligne de commande
Les documents peuvent être parcourus grâce au bouton Suivant.
Persistance des documents et maintient de l'agent en cas d'erreur
Par défaut, les documents sont supprimés définitivement après 24 heures. Cette valeur peut être paramétrée dans la ligne de commande de lancement de l'agent d'impression :
Le paramètre -harmony_param"<nbj>3" indique que l'on souhaite donner une durée de vie de 3 jours aux documents.
En cas d'erreur entraînant l'arrêt inopiné de l'agent d'impression (coupure de liaison avec le serveur par exemple), le paramètre -reload 10 permet que l'agent se relance automatiquement après le délai, en secondes, indiqué dans le paramètre (dans le cas présent 10 secondes).
Choix de l'emplacement de stockage des documents centralisés
Par défaut, les documents sont stockés dans un répertoire construit comme suit :
Ce qui donne et dans le cas d'une installation par défaut.
Ces chemins peuvent être changés par l'ajout d'une clé DivaltoPrintAgent dans le chapitre Local machine\SOFTWARE\Divalto\Divalto.ini\system du registre avec pour valeur le chemin souhaité.
Impression en mode caractère
Pour l'impression en mode caractères, il faut utiliser le chapitre Printer du format pour le spool.
Pour le poste dédié à l'agent d'impression, il faut apporter quelques attentions particulières:
- c'est le programme xdivaltoagentimpprn.dhop qui doit être lancé
- il faut que le fichier FIHxxxx soit correctement paramétré en fonction de l'imprimante réelle qui devra imprimer les pages
Comme pour les impressions en mode graphique, le nom du format pour le spool utilisé par les clients pour générer les documents doit correspondre au format pour le spool du poste exécutant l'agent d'impression 'lequel référence l'imprimante réelle).
Utilisation sur plusieurs sites physiques
Dans le cas où plusieurs sites physiques d'une même entité et dépendant d'un même serveur d'applications, doivent chacun être desservis en mode Agent d'impression, il convient de faire les ajustements suivants:
- Il faut créer un format pour le spool dédié pour chaque site en précisant un sous-répertoire
- Il faut disposer d'un poste Agent d'impression dédié à chaque site physique (et paramétré en cohérence : spool correspondant au spool dédié au site et référençant la bonne imprimante réelle)
Exemple : une entreprise dispose d'un site à Strasbourg et d'un second site à Entzheim : on créé deux formats pour le spool
Le format pour le spool adéquat sera propagé aux utilisateurs en fonction de leur sites respectifs et un poste dédié à l'agent d'impression sera implanté sur chacun des deux sites.