ONYX - 9.0 - Utilisation - Traitements divers/en

Différence entre versions

De MappingDoc
(Page créée avec « The principle is to use dynamic replacement fields depending on the execution context in an XPS document. To do this, it is possible to define fields awaiting assignment... »)
(Page créée avec « For example, one use may be to print the edition date on a document but this date does not correspond to the exact moment of composition of the document but rather to that... »)
Ligne 43 : Ligne 43 :
 
The principle is to use dynamic replacement fields depending on the execution context in an XPS document. To do this, it is possible to define fields awaiting assignment in an XPS file. These fields will then be replaced with a value at run time.
 
The principle is to use dynamic replacement fields depending on the execution context in an XPS document. To do this, it is possible to define fields awaiting assignment in an XPS file. These fields will then be replaced with a value at run time.
  
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.
+
For example, one use may be to print the edition date on a document but this date does not correspond to the exact moment of composition of the document but rather to that of sending the document to the destination printer.
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 <nowiki>[[MA_DATE]]</nowiki> (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.
+
At the time of composition, in the M-Designer document model, you must then create a field awaiting replacement in the form <nowiki>[[MY_DATE]]</nowiki> (text box). Once the XPS document is composed, the value of this MA_DATE field will be dynamically replaced by the command line switch '''-replaceEnv'''. The replacement value will be found in the system environment.
Tout l’enjeu consiste donc à inscrire dans l’environnement une variable MA_DATE et à lui donner une valeur.
+
The whole challenge therefore consists of registering a MA_DATE variable in the environment and giving it a value.
  
 
Plusieurs moyens pour cela :
 
Plusieurs moyens pour cela :

Version du 3 janvier 2025 à 10:11

Autres langues :
English • ‎français

Log management

The -logfile:XXX switch allows you to redirect all messages from a map_xps command into a text file:

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


List of resources

The -listResource switch allows you to display on the screen (standard output) the resources (fonts and images) embedded in an XPS document:

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


Data extraction in XML

The principle is to create an M-Designer compatible XML file into which all the text data of the XPS document is exported. Each text box in the XPS file becomes an XML field uniquely named by its X and Y positions expressed in points for a resolution of 72 dpi.


Very little used as such, this XML output will find its interest in the additional calculations carried out for the addition of OMR codes.

Example:

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


XML data extract:

<?xml version="1.0encoding="UTF-16standalone="yes?>
<doc>
<page name="NORMAL">
<field name="x289y112">Customer number: 10638</field>
<field name="x289y87">Invoice No. 10000 of 11/22/2008</field>
…
</page>
</doc>


Dynamic field replacement

The principle is to use dynamic replacement fields depending on the execution context in an XPS document. To do this, it is possible to define fields awaiting assignment in an XPS file. These fields will then be replaced with a value at run time.

For example, one use may be to print the edition date on a document but this date does not correspond to the exact moment of composition of the document but rather to that of sending the document to the destination printer. At the time of composition, in the M-Designer document model, you must then create a field awaiting replacement in the form [[MY_DATE]] (text box). Once the XPS document is composed, the value of this MA_DATE field will be dynamically replaced by the command line switch -replaceEnv. The replacement value will be found in the system environment. The whole challenge therefore consists of registering a MA_DATE variable in the environment and giving it a value.

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