ONYX - 9.0 - Utilisation

Traitements divers

De MappingDoc

Gestion de la log

Le commutateur -logfile:XXX permet de rediriger l’ensemble des messages d’une commande map_xps dans un fichier texte :

map_xps -infile:/tmp/invoice.xps -toPDF -outfile:/tmp/invoice_[[InvoiceID]].pdf -logfile:/var/logs/mylog.log

Liste des ressources

Le commutateur -listResource permet d’afficher à l’écran (sortie standard) les ressources (polices et images) embarquées dans un document XPS :

map_xps -infile:/tmp/invoice.xps -listResource

Extraction des données en XML

Le principe est de créer un fichier XML compatible M-Designer dans lequel toutes les données textes du document XPS sont exportées. Chaque zone de texte dans le fichier XPS devient un champ XML nommé de manière unique par ses positions en X et Y exprimées en points pour une résolution de 72 dpi.

Très peu utilisée en tant que telle, cette sortie XML trouvera son intérêt dans les calculs complémentaires effectués pour l’ajout de codes OMR.

Exemple:

map_xps -infile:/tmp/invoice.xps -toXMLDRAW -outfile:/tmp/result/invoice_data.xml

Extrait des données XML :

<?xml version="1.0encoding="UTF-16standalone="yes?>
<doc>
<page name="NORMAL">
<field name="x289y112">N° du client: 10638</field>
<field name="x289y87">Facture N° 10000 du 22/11/2008</field>
…
</page>
</doc>

Remplacement de champs dynamiques

Le principe est d’utiliser des champs de remplacement dynamiques en fonction du contexte d’exécution dans un document XPS. Pour cela, il est possible de définir dans un fichier XPS des champs en attente d’affectation. Ces champs seront ensuite remplacés par une valeur au moment de l’exécution.

Par exemple, un usage peut être d’imprimer la date d’édition sur un document mais cette date ne correspond pas au moment exact de la composition du document mais plutôt à celle de l’envoi du document à l’imprimante de destination. Au moment de la composition, dans le modèle de document M-Designer, il faut alors créer un champ en attente de remplacement sous la forme [[MA_DATE]] (zone de texte). Une fois le document XPS composé, la valeur de ce champ MA_DATE sera remplacée dynamiquement par le commutateur de ligne commandes -replaceEnv. La valeur de remplacement sera retrouvée dans l’environnement système. Tout l’enjeu consiste donc à inscrire dans l’environnement une variable MA_DATE et à lui donner une valeur.

Plusieurs moyens pour cela :

- Avant composition, elle est passée en paramètre par l’application envoyant le fichier de données à composer dans ONYX Server et sera donc automatiquement gérée dans le moteur comme une variable d’environnement attachée au traitement.

Exemple : argument-o:MA_DATE=20150219 de la commande map_lpr

- Pendant les traitements de composition, elle est définie dans le Workflow d’exécution comme un paramètre et ainsi automatiquement gérée dans le moteur comme une variable d’environnement attachée au traitement :


OX S Dyn Champ.png


- Après composition, elle peut prendre la valeur d’un index positionné dans le document XPS préalablement exporté dans l’environnement par l’argument -environment.

Exemple : à l’issu de la composition, un document invoice.xps est obtenu contenant l’index MA_DATE. La commande suivante exporte les valeurs de l’index dans l’environnement puis utilise l’environnement pour remplacer dynamiquement le champ [[MA_DATE]] :

map_xps -infile:/tmp/invoice.xps -toPDF -outfile:/tmp/invoice.pdf -environment:MA_DATE -replaceEnv


Remarque : L’ensemble des variables d’environnement propres au système Windows ou Linux (DATE, TIME, COMPUTERNAME, etc.) et des variables d’environnement propres à ONYX Server (MAP_FILE, MAP_USER, MAP_TITLE, etc.) sont accessibles nativement par cet argument -replaceEnv.

Conversion d'images

Lors de la conversion de documents XPS en image, des commutateurs supplémentaires peuvent intervenir pour les dimensions et la gestion des couleurs :

-sizeX:NN : précise la largeur souhaitée de l’image, en pixels.
-sizeY:NN : précise la hauteur souhaitée de l’image, en pixels.

Lorsqu’un seul de ces deux paramètres est renseigné, les dimensions de l’image en sortie sont recalculées en conservant les proportions d’origine. Lorsque les deux paramètres sont renseignés alors les proportions d’origine ne sont plus prises en compte et l’image peut éventuellement être déformée.

-bpp:NN : précise le nombre de bits par pixels pour le rendu des couleurs.

Valeurs possibles :

1 bpp => deux couleurs (donc noir et blanc)

4 bpp => rendu en 16 couleurs

8 bpp => rendu en 256 couleurs

16 bpp => rendu en 65.536 couleurs

32 bpp => rendu en 16,6 millions de couleurs

Format papier

Trois commutateurs particuliers permettent de modifier les dimensions des pages d’un document XPS :

-paper:XXX : permet de changer la taille du papier (de la page) sans toucher au contenu (attention aux potentielles pertes de données).

-scale:NN  : permet de changer la taille du contenu sans toucher au papier.

-changeformat:XXX  : permet de changer le format du document en modifiant la taille du papier et en adaptant le contenu avec conservation des proportions.

Pour une mise à l’échelle (scale) du contenu des pages, la valeur est exprimée en pourcentage, de 1 à infini. La taille du papier n’étant pas impactée, il faut faire attention aux potentielles pertes de données avec des valeurs supérieures à 100. En combinaison d’une mise à l’échelle, le commutateur -center peut être utilisé pour centrer le résultat au milieu de page.

Pour modifier la taille des pages, avec adaptation ou non du contenu, les valeurs des commutateurs -changeformat et -paper expriment un format de papier soit à la norme ISO soit en personnalisé.

Valeurs standards ISO possibles : A2, A3, A3 Extra, A4, A4 Plus, A4 Extra, A5, A5 Extra, A6, B4, B5, B5 Extra, B6, Envelope #9, Envelope #10, Envelope #11, Envelope #12, Envelope #14, Envelope B4, Envelope B5, Envelope B6, Envelope C3, Envelope C4, Envelope C5, Envelope C6, Envelope C65, Envelope DL, Envelope Invite, Envelope Monarch, Envelope, Executive, Folio, German Legal Fanfold, German Std Fanfold, Japanese Postcard, Japanese Double Postcard, Ledger, Legal, Legal Extra, Letter, Letter Extra, Letter Plus, Letter Small, Note,PRC 16K, PRC 32K, PRC 32K(Big), PRC Envelope #1, PRC Envelope #2, PRC Envelope #3, PRC Envelope #4, PRC Envelope #5, PRC Envelope #6, PRC Envelope #7, PRC Envelope #8, PRC Envelope #9, PRC Envelope #10, Quarto, Statement, SuperA, SuperB, Tabloid, Tabloid Extra, US Std Fanfold.

Syntaxe pour une taille personnalisée  : -changeformat:xx.xx,xx.xx[,cm|in|mm]

⇒ deux valeurs décimales correspondant respectivement à largeur et hauteur

⇒ le séparateur de décimale est le ‘.’

⇒ le séparateur de valeurs est ‘,’ ou ‘;’

⇒ l’unité est optionnelle : cm (par défaut), mm ou in (pour inch)

Exemples :

map_xps -infile:/tmp/invoice.xps -scale:50 [-center] -outfile:/tmp/invoice_out.xps
map_xps -infile:/tmp/invoice.xps -changeformat:A4 -outfile:/tmp/invoice_out.xps
map_xps -infile:/tmp/invoice.xps -changeformat:21,29.7,cm -outfile: :/tmp/invoice_out.xps

Rotation

Pour effectuer une rotation aux documents, le commutateur -rotation:NN est utilisé. L’angle de rotation est exprimé en degré sachant que le sens de rotation, par défaut, étant le sens trigonométrique (= anti-horaire). Sur le principe, tous les angles sont supportés mais seuls les angles droits respectent la cohérence des dimensions de la page d’origine ce qui engendre que les valeurs supportées sont les suivantes : -90 (rotation de 90° dans le sens horaire), 90, 180, 270.


Remarque :

Les valeurs -180 et -270 ne sont pas supportées (page blanche en sortie), il convient alors d’utiliser respectivement 180 et 90.


Exemple :

map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice_90.xps -rotation:90

Fusion d'un fond de page sur un document existant

Le principe est que, sur un document XPS existant, il est possible de rajouter un autre document en tant que fond de page ou calque (exemple : ajouter un logo sur une facture existante n’en comportant pas). Le commutateur utilisé est -merge:XXX dont la valeur est le nom complet du fichier XPS externe à ajouter comme calque. L’argument optionnel -mergemode:XXX permet de piloter la manière dont est rajouté ce calque :

- REPEATALL : toutes les pages sont fusionnées en répétant le calque jusqu’à la fin du fichier d’entrée. C’est le fonctionnement 
par défaut.

Exemple :

  • En entrée => fichier de cinq pages (identifiées par 1, 2, 3, 4, 5) et un calque de deux pages (identifiées par a, b)
  • En sortie => un fichier de cinq pages identifiées 1a, 2b, 3a, 4b, 5a
- REPEATFULL : toutes les pages sont fusionnées en répétant le calque tant qu’il peut être inséré entièrement.

Exemple : avec les mêmes entrées que précédemment, le fichier en sortie compte cinq pages identifiées 1a, 2b, 3a, 4b, 5 (la dernière page n’étant donc pas modifiée).

-ONCE : le calque n’est inséré qu’une seule fois sur la ou les premières pages du fichier d’entrée.

Exemple : avec les mêmes entrées que précédemment, le fichier en sortie compte cinq pages identifiées 1a, 2b, 3, 4, 5.

Exemple :map_xps -infile:/tmp/invoice.xps -merge:/tmp/logo.xps -mergemode:REPEATALL -outfile:/tmp/invoice_final.xps