ONYX - 9.0 - Utilisation

XPS Indexation management

De MappingDoc
Révision datée du 2 janvier 2025 à 16:12 par Jdieu (discussion | contributions) (Page créée avec « The <code>-exportemptyindex</code> parameter allows you to also export indexes that have no value. »)
Autres langues :
English • ‎français

List of indexes and their values

The -dumpIndex toggle allows you to list all the indexing criteria present in the XPS document.


Example:

map_xps -infile:/tmp/invoice.xps -dumpIndex
CustomerID
InvoiceID
InvoiceDate
CustomerName
MAPSUBJCT
MAPSEND
NUMPING

Used with the name of a particular index, it lists all the different values ​​of this index:

map_xps -infile:/tmp/invoice.xps -dumpIndex:CustomerID
10638
4274
11426
4533
...


By adding the -duplicateindex switch, the index values ​​are listed on all pages of the XPS document including those with the same value:

map_xps -infile:/tmp/invoice.xps -dumpIndex:CustomerID -duplicateindex
10638
4274
11426
11426
4533
4533
...

Indexing a document

Replications of index values

In certain cases, it may be that an indexing criterion is present on all pages but without a defined value for certain pages or that the indexing criterion is not present on all pages. The copyEmptyIndex switch then allows you to reindex the document by copying, for pages without an index value, the index value found on the previous page.


Example :

map_xps -infile:/tmp/invoice.xps -copyEmptyIndex:InvoiceID

Indexing the file before placing the order:

Page Index Index value
1 InvoiceID 1
2 Cell text
3 InvoiceID 2
4 InvoiceID 3
5 InvoiceID Cell text


Indexing the file after placing the order:

Page Index Valeur de l’index
1 InvoiceID 1
2 InvoiceID 1
3 InvoiceID 2
4 InvoiceID 3
5 InvoiceID 3


Addition of indexing criteria (Static)

The -addCriteria switch allows you to add one or more criteria to a document. The general syntax is:

-addCriteria:IndexName=value


Example: adding one or more indexes with the same value on all pages

map_xps -infile:/tmp/in.xps -outfile:/tmp/out.xps -addCriteria:NumOrder=123456 -addCriteria:Date=17.02.2015


Addition of indexing criteria (Dynamic)

More generally, the values ​​of the added index will come from a prior extraction of text information contained in the XPS document itself on each of its pages. This information, temporarily stored in a /tmp/values.txt file, is reused to add the criterion with the following syntax:


map_xps "-infile:/tmp/in.xps" "-outfile:/tmp/out.xps" "-addCriteria:NumOrder=FILE:/tmp/value.txt"

Extracting criterion values

The principle is to search for information contained in the document and extract it (-extract:xxx switch) into a temporary file and then add them as values ​​of an indexing criterion of the same document. The temporary file created is in text format, in Unicode, with the following syntax: "value[TAB]page[CRLF]". The collection of information in the document can be done by keyword (-filter:xxx switch) or by position (-box:xxx switch). The returned information can be cleaned of extraneous spaces before and/or after the text with the following switches:

-ltrim: removing spaces before the text


-rtrim: removing spaces after the text


-trim: removal of spaces before and after the text

Example 1: Keyword search

map_xps "-infile:/tmp/invoice.xps" "-extract:/tmp/values.txt" "-filter:Invoice for order" "-length:10" "-shift:2" "-rtrim"

⇒ extraction of 10 characters located two characters after the keyword Invoice for order by removing unnecessary spaces after the returned text.

Example 2: search by position

map_xps "-infile:/tmp/invoice.xps" "-extract:/tmp/values.txt" "-box:100,150,180,30,mm"


The box parameters specify its dimensions: xx.xx,xx.xx,xx.xx,xx.xx[,cm|in|mm]


- four decimal numbers specifying in order: top, bottom, left, right


- the decimal separator is ‘.’


- the value separator is ‘,’ or ‘;’


- the last parameter (optional) is the coordinate unit: in points (for a resolution of 96dpi) by default, in millimeters (mm), in inches (in) or in centimeters (cm)


Export of indexes and their values

The principle is the creation of an index file from a document with a view to archiving it in third-party software. The index files produced as standard by ONYX Server can be in TXT, XML, or IND format (compatible with Content Manager). This export of indexes to a file is controlled by the -indexfile:xxx switch. The extension of the export file controls its type.

The -duplicateindex parameter allows you to also export indexes whose value is the same on several pages.


The -exportemptyindex parameter allows you to also export indexes that have no value.


Exemples :

map_xps -infile:/tmp/invoice.xps -indexfile:/tmp/file.txt [-duplicateindex] [-exportemptyindex]
map_xps -infile:/tmp/invoice.xps -indexfile:/tmp/file.xml [-duplicateindex] [-exportemptyindex]
map_xps -infile:/tmp/invoice.xps -indexfile:/tmp/file.ind [-duplicateindex] [-exportemptyindex]

Traitements sur les index

Tri

Le principe est de trier (commutateur -sort:xxx) un document XPS suivant les valeurs d’un ou plusieurs critères d’indexation. Un seul fichier sera créé en sortie. Le tri s’effectue par ordre croissant sur des valeurs numériques par défaut. L’utilisation de l’option ALPHA permet de réaliser un tri sur des valeurs alphanumériques, l’option REVERSE permet un tri par ordre décroissant.


Exemples :

map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice.pdf -sort:CustomerID -toPDF
map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice.pdf -sort:ALPHA:CustomerName -toPDF
map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice.pdf -sort:CustomerID,InvoiceID -toPDF
map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice.pdf -sort:ALPHA:CustomerName,REVERSE:InvoiceID -toPDF


Éclatement

Le principe est d’éclater un document suivant les valeurs d’un ou plusieurs critères d’indexation. Autant de fichiers peuvent être créés en sortie qu’il y a de valeurs différentes du ou des critères utilisés. Ici, pas de commutateur particulier, mais une syntaxe précise à respecter pour commander l’éclatement : [[Nom_index]].

Exemples :

map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice_[[CustomerID]].pdf -toPDF
map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice_[[CustomerID]]_[[InvoiceID]].pdf -toPDF

Éclatement volumique

Le mode BUNDLEONINDEX permet de créer des lots en fonction du nombre de pages pour chaque valeur de critère (par exemple : un fichier avec les documents comptant de 1 à 4 pages pour chaque valeur de critère, un fichier pour les documents comptant de 5 à 9 pages, un fichier pour les documents de plus de 10 pages). Il est possible de créer autant de lots que souhaité.


Exemple :

map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice_[[BUNDLEONINDEX,MAPSEND,1,5,10]].pdf -toPDF


En mode BUNDLEONINDEX, l’éclatement peut également se faire suivant un nombre de feuilles (en fonction des informations de recto/verso), la syntaxe devient alors :

map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice_[[BUNDLEONINDEX=SHEET,MAPSEND,1,5,10]].pdf -toPDF

Filtres ou extraction de pages

Le principe est d’isoler certaines pages d’un document XPS en fonction des valeurs d’un ou plusieurs critères d’indexation. Cela peut servir notamment pour créer un document en sortie ne concernant que certains clients. Le commutateur -filter:xxx est utilisé dans ce cas. Les opérateurs mathématiques (=, <, >, <=, >=) et logiques (AND, OR) peuvent être employés pour des filtres complexes sans oublier les parenthèses de priorités.

Exemples :

map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice_426.pdf -toPDF -filter:CUSTOMER=426
map_xps -infile:/tmp/invoice.xps -outfile:/tmp/extract.pdf -toPDF-filter:(CUSTOMER=4026) OR (CUSTOMER=1458) AND (PRICE=15)

Cela peut également s’avérer très utile pour n’effectuer des actions que sur certaines pages dépendant de valeurs de critères, notamment la gestion des options de finition (PrintTickets).


Hors gestion des index, un autre commutateur permet d’extraire des pages d’un document XPS : -pages:xxx. Les valeurs des pages peuvent être définies par :

- des numéros unitaires séparés par des virgules : -pages:1,5,6,7,12

- des intervalles de pages : -pages:5-7

- une combinaison des deux : -pages:1,5-7,12

- le caractère ‘*’ peut être utilisé dans un intervalle pour préciser la fin du document

- les pages à extraire peuvent être inscrites dans un fichier texte externe avec la syntaxe : page[CRLF]


Exemples :

map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice.pdf -pages:1,5,6,7,12 -toPDF
map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice.pdf -pages:5-7 -toPDF
map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice.pdf -pages:1,5-7,10-* -toPDF
map_xps -infile:/tmp/invoice.xps -outfile:/tmp/invoice.pdf -pages:FILE:/home/extern/pages.txt -toPDF


Concaténation de documents

Le principe est d’ajouter plusieurs documents les uns à la suite des autres. Le document de sortie est la concaténation de tous les fichiers précisés sur la ligne de commande dans l’ordre où ils ont été précisés. Deux commutateurs peuvent être utilisés : -add:xxx (=concaténation de plusieurs documents XPS en un XPS mono document) ou -adddoc:xxx (=concaténation de plusieurs documents XPS en un XPS multi documents avec conservation des options de finition de chaque document d’origine).


Remarque: On peut ensuite imaginer un tri suivant des critères d’indexation préalablement définis sur chaque fichier pour faire du regroupement de fichiers de plusieurs sources différentes (facture + CGV + lettre d’information…)


Exemples :

Concaténation de plusieurs fichiers XPS en une seule fois :

map_xps -outfile:/tmp/final.xps -add:/tmp/test1.xps -add:/tmp/test2.xps -add:/tmp/test3.xps


Concaténation en plusieurs fois, dans le cas où l’on ne connait pas d’avance le nombre de fichiers XPS en entrée (généralement dans une boucle) :

map_xps -tempfile:/tmp/final.xps -add:/tmp/test1.xps
map_xps -tempfile:/tmp/final.xps -add:/tmp/test2.xps
map_xps -tempfile:/tmp/final.xps -add:/tmp/test3.xps