ESUPSGC

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Notez que les mêmes BMP (et donc les mêmes commandes chromium/ghostscript/imagemagick) sont opérationnels pour les différentes imprimantes que nous avons utilisées lors du développement de cette fonctionnalité (evolis primacy 1, evolis primacy 2 et , zebra zxp7 et zebra ZC300),

ESUP-SGC

Les 2 configurations BMP_COMMAND_BLACK_PRINTER et BMP_COMMAND_COLOR_PRINTER dans esup-sgc (onglet admin < configuration) permettent de 'convertir' le HTML/CSS d'une carte en images BMP n&b et couleur adaptés aux imprimantes à cartes.
Dit autrement, ce sont ces 2 paramètres qui permettent à esup-sgc-client de récupérer les images BMP noir et blanc d'une part, et couleur d'autre part, qui seront envoyées à l'imprimante.

Par défaut, on propose une configuration de BMP_COMMAND_BLACK_PRINTER de ce type : 

Bloc de code
themeRDark
wget -k --bind-address 127.0.0.1 -4 'https://esup-sgc.univ-ville.fr/wsrest/view/%s/card-b64.html?type=black' -O card-b64.html && chromium --headless --disable-gpu --print-to-pdf=card.pdf card-b64.html && gs -o card-resize.pdf -sDEVICE=pdfwrite -dPDFFitPage -g10160x6480 card.pdf && convert -monochrome card-resize.pdf card.bmp

...

Bloc de code
languagebash
themeRDark
wget -k -4 'https://esup-sgc.univ-rouen.fr/wsrest/view/%s/card-b64.html?type=color' -O card-b64.html && chromium --headless --disable-gpu --print-to-pdf=card.pdf card-b64.html && convert -resize 1016x648 -gravity center -extent 1016x648 -density 600 -alpha off card.pdf card.bmp

...

Notez qu'esup-sgc s'appelle donc lui-même, via chromium et les outils ghostscript et imagemagick, on arrive ici à retrouver un BMP reprenant exactement le thème/look de la carte que l'on obtient via une impression HTML (telle que le propose esup-sgc pour permettre l'usage de tout type d'imprimante à carte).

Pour que ces commandes fonctionnent, il faut : 

Avertissement

Les commandes bash résultant des configurations BMP_COMMAND_BLACK_PRINTER, BMP_COMMAND_COLOR_PRINTER et BMP_COMMAND_VIRTUAL (pour l'affichage de la carte 'dématérialisée' sur mobile par exemple) sont exécutées par esup-sgc dans un répertoire temporaire propre à chaque commande (et dont le nom de dossier est forgé via l'id de la carte, le type de conversion et le timestamp). Ainsi en utilisant des chemins relatifs pour les fichiers pdf/images intermédiaires, comme proposé dans les configurations par défaut, esup-sgc peut appeler ces commandes en parallèle pour plusieurs cartes sans risque de conflit ou d'écrasement des fichiers temporaires. Chaque commande s'exécute dans son propre environnement (dossier) isolé, garantissant que les fichiers intermédiaires générés pour une carte n'interfèrent pas avec ceux des autres processus en cours. Cela permet à esup-sgc d'optimiser le traitement des cartes tout en maintenant l'intégrité des données, même lors d'exécutions simultanées.

Utiliser un chemin absolu pour les fichiers intermédiaires est à proscrire, cela pourrait entraîner des erreurs graves, comme l'impression d'une carte avec les informations d'une personne, mais attribuée à une autre.


Pour que ces commandes fonctionnent, il faut : 

  • installer wget, chromium, imagemagick (convert), ghostscript (commande gs)
    • pour ImageMagick le format PDF ne soit pas désactivé (il faudra
    installer wget, chromium, imagemagick (convert), ghostscript (commande gs)
    • pour ImageMagick le format PDF ne soit pas désactivé (il faudra peut-être commenter <policy domain="coder" rights="none" pattern="PDF" /> dans /etc/ImageMagick-6/policy.xml par exemple pour ce faire)
  • modifier la configuration pour renseigner l'url de votre sgc, modifier éventuellement chromium par chromium-browser suivant votre distribution
  • faire en sorte que le wget sur le serveur fonctionne : il vous faudra autoriser la propre IP d'esup-sgc à appeller son propre service REST : dans security.properties, ajoutez l'IP du sgc au niveau de accessRestrictionWSRestApi - esup-sgc lui-même doit en effet pouvoir accéder à /wsrest/view/ (d'où le bind-adress ici en cohérence avec le fichier applicationContext-security.xml)

...

Théoriquement, esup-sgc-client supporte, pour l'édition en 1 passe, les imprimantes compatibles avec 

  • evolis : Primacy 1 et Primacy 2 (testés) mais aussi Elyps, Zenius, ... (non testés)
  • sdk multiplateforme link-os : ZC 300, ZC 100 (non testé), ZC350, ZXP7 et ZXP3 

Pour la partie NFC, esup-sgc-client propose un outil "Test PC/SC" vous permettant de valider le bon fonctionnement de votre lecteur NFC USB sur votre Système d'Exploitation, que celui-ci soit autonome ou embarqué dans une imprimante à carte (evolis comme zebra).

...

Développer le support d'un autre type d'imprimante correspond donc à implémenter un module maven similaire.
Le README du projet sur github donne les indications nécessaires pour monter son environnement de développement et développer dans esup-sgc-client : https://github.com/EsupPortail/esup-sgc-client

...

de développement et développer dans esup-sgc-client

...

: https://esup-sgc-client-web-installer.univ-rouen.fr vous permet de générer un installateur d'esup-sgc-client (en plus d'esup-nfc-tag-server et esup-nfc-tag-desktop) en précisant uniquement les urls de vos serveur esup-sgc et esup-nfc-tag.

Les raccourcis proposés sous windows vous permettent  d'avoir des lanceurs de ces outils par simple clic. Les raccourcis contiennent également au passage la surcharge de certains paramétrages par défaut : cela vous donne ainsi la possibilité de les modifier par vous-même après coup.

github.com/EsupPortail/esup-sgc-client

Installateur esup-sgc-client

https://esup-sgc-client-web-installer.univ-rouen.fr vous permet de générer un Concernant les imprimantes zebra, le SDK zebra sous windows semble malheureusement être compatible uniquement avec le JDK 8 d'Oracle. Pour des raisons de licence (entre autre), l' installateur d'esup-sgc-client ne propose pas ce JDK (mais un openjdk+openjfx 17 actuellement). Aussi sous windows, vous devrez utiliser un autre JDK/JRE/JavaFX que celui fourni par l'installateur ... ou alors vous devrez préférer l'usage d'esup-sgc-client et de votre imprimante zebra depuis un linux (esup-sgc-(en plus d'esup-nfc-tag-server et esup-nfc-tag-desktop) en précisant uniquement les urls de vos serveur esup-sgc et esup-nfc-tag.

Les raccourcis proposés sous windows vous permettent  d'avoir des lanceurs de ces outils par simple clic. Les raccourcis contiennent également au passage la surcharge de certains paramétrages par défaut : cela vous donne ainsi la possibilité de les modifier par vous-même après coupclient et la zebra ZC300 fonctionne parfaitement sous linux avec un openjdk+openjfx 17 par exemple).

Lancement d'esup-sgc-client

...

Une fois que votre esup-sgc-client est lancé, vous devez voir apparaître un bloc (en vert) en haut à droite de votre "vue manager".
Ce bloc vous permet de voir qu'effectivement votre session est liée à une imprimante en fonctionnement (bloc vert avec icône 'ok'), il vous permet aussi de "sélectionner" une autre imprimante (si vous avez le droit d'utiliser d'autres imprimantes, cf paragraphe ci-dessous concernant le "partage d'imprimante") ou encore de décider d'imprimer uniquement (sans encoder) pour revenir à la possibilité d'Édition en 2 temps d'esup-sgc (option "Aucune imprimante sélectionnée").

Si ce bloc en haut à droite a sélectionné une imprimante en fonctionnement (bloc vert - icône ok), alors un bouton "Imprimer et encoder" doit vous être proposé pour les demandes de cartes "validées" (et "éditables").

...