> For the complete documentation index, see [llms.txt](https://documentation.efalia.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.efalia.com/documentations/efalia-compose/mapping-suite/onyx-server/utilisation/gestion-des-codes-omrkern.md).

# Gestion des codes OMR(KERN)

Cette partie détaille les étapes nécessaires aux calculs et à l’impression de marques KERN pour le pilotage des matériels de mise sous plis. Pour ce faire, le point de départ est un document XPS de factures déjà composé et indexé.

## Calculs des codes OMR

A partir de ce document XPS indexé, le principe est d’utiliser les valeurs d’un index particulier (par exemple sur le numéro de client = CustomerID dans notre cas) pour produire un fichier XML compatible M-Designer en y intégrant tous les calculs d’allotissements, les modulos de page et de séquence, les ruptures, etc… Le commutateur principal est **-toXMLDRAW** (permettant de générer un fichier XML Mapping, appelés “XMLDraw”), pour demander une sortie XML à partir du document XPS. Cette sortie est enrichie avec les arguments suivants et utilisables en ligne de commandes (-param:NOM=valeur) ou dans un profil de conversion :

**counterinformation=on/off**

Ajoute les compteurs de page du document dans le XML. Il peut être utilisé sans calcul de code OMR.

Ajout dans le XML : `<field name="Counter_xxxxxxxxx">NN</field>`

**omrmark=CustomerID**

Nom de l’index suivant lequel sont effectués les calculs de codes OMR. Ajout dans le XML : informations de lots (plis) et les modulos pour l’affichage des barres OMR

**maxomrmark=NN**

Nombre maximum de feuilles par pli. Ce paramètre influe sur les calculs mais n’ajoute rien de plus dans le XML.

**omrduplex=on/off**

Calculs effectués en mode recto/verso en tenant compte des attributs de finition du document XPS. Ce paramètre influe sur les calculs et ajoute des compteurs de feuilles dans le XML.

**maxomrmark=NN**

Nombre maximum de feuilles par pli. Ce paramètre influe sur les calculs mais n’ajoute rien de plus dans le XML.

**omrduplex=on/off**

Calculs effectués en mode recto/verso en tenant compte des attributs de finition du document XPS. Ce paramètre influe sur les calculs et ajoute des compteurs de feuilles dans le XML.

**omrpagemodulo=7|8|4|15|R7|R8**

Calcule et ajoute le modulo de page dans le fichier XML. Le code change à chaque page. Ajout dans le XML:

```
<field name="OMR_mark_page_1">NN</field>
<field name="OMR_mark_page_2">NN</field>
<field name="OMR_mark_page_3">NN</field>
<field name="OMR_mark_page_4">NN</field>
```

Signification des valeurs :

* 7 = décrément d’une valeur binaire de 7 à 1 (de 111 à 001)
* 8 = décrément d’une valeur binaire de 7 à 0 (de 111 à 000)
* 4 = décrément d’une valeur binaire de 4 à 1 (de 100 à 001)
* 15 = décrément d’une valeur binaire de 15 à 1 (de 1111 à 0001)
* R7 = incrément d’une valeur binaire de 1 à 7 (de 001 à 111)
* R8 = incrément d’une valeur binaire de 0 à 7 (de 000 à 111)

**omrcollationmodulo=7|8|4|15|R7|R8**

Calcule et ajoute le modulo de séquence dans le fichier XML. Le code est le même sur toutes les pages d’un même lot (même enveloppe) et change à chaque rupture de lot.

Ajout dans le XML:

```
<field name="OMR_mark_collation_1">NN</field>
<field name="OMR_mark_collation_2">NN</field>
<field name="OMR_mark_collation_3">NN</field>
<field name="OMR_mark_collation_4">NN</field>
```

**omrmarkbreak=boc|eoc**

Marque de rupture.

Significations:

* boc : la marque de rupture est sur la première page de chaque lot (par défaut).
* eoc : la marque de rupture est sur la dernière page de chaque lot.

Ajout dans le XML :

```
<field name="OMR_mark_collation_break">NN</field>
```

**omrfixedbars=nombre**

Nombre de barres fixes souhaitées dans le code OMR.

Ajout dans XML :

```
<field name="OMR_mark_fixedbars_1">NN</field>
<field name="OMR_mark_fixedbars_2">NN</field>
<field name="OMR_mark_fixedbars_n">NN</field>
```

**addindexvalue=on|off**

Ajoute les valeurs des critères d’indexation du document XPS dans le fichier XML.

Ajout dans le XML:

```
<field name="index_CustomerID">XXX</field>
```

**addtext=on|off**

Ajoute les valeurs des informations textes du document XPS dans le fichier XML.

Exemple de commande :

```
map_xps -infile:/tmp/invoices.xps -toXMLDRAW -outfile:/tmp/invoices_omr.xml -param:omrmark=CustomerID -param:counterinformation=on -param:addindexvalue=on -param:addtext=off -param:omrpagemodulo=7 -param:omrcollationmodulo=7 -param:omrduplex=on
```

Exemple de sortie XML :

```
<?xml version="1.0 encoding="UTF-16standalone="yes?>
<doc>
 Page 1 
<page name="NORMAL">
<field name="Counter_DocumentPage">29</field>		Nombre total de pages
<field name="Counter_CurrentPage">1</field>			Numéro de page courante
<field name="Counter_DocumentPageDuplex">29</field>	Nombre total de feuilles (*)
<field name="Counter_CurrentPageDuplex">1</field>		Numéro de feuille courante (*)
<field name="Counter_FrontSide">1</field>			Page recto ou verso
<field name="Counter_Document_Collation">20</field>	Nombre total de plis
<field name="Counter_Current_Collation">1</field>		Numéro du pli courant
<field name="Counter_Current_Collation_Pages">1</field>	Nombre de feuilles dans le pli courant (**)
<field name="Counter_Current_Collation_Page">1</field>	Numéro de feuille courante dans le pli courant (**)
<field name="OMR_Collation">start_end</field>		Type de feuille dans le pli courant (***)
<field name="OMR_mark_collation_break">1</field>		Marque de rupture
<field name="OMR_mark_fixedbars_1">1</field>		Barre fixe
<field name="OMR_mark_page_1">1</field>			modulo de page (valeur 4)
<field name="OMR_mark_page_2">1</field>			modulo de page (valeur 2)
<field name="OMR_mark_page_3">1</field>			modulo de page (valeur 1)
<field name="OMR_mark_collation_1">1</field>		modulo de séquence (valeur 4)
<field name="OMR_mark_collation_2">1</field>		modulo de séquence (valeur 2)
<field name="OMR_mark_collation_3">1</field>		modulo de séquence (valeur 1)
<field name="OMR_mark_parity">1</field>			Marque de parité (****)
<field name="index_CustomerID">10638</field>		Valeurs des index
<field name="index_InvoiceID">10000</field>
<field name="index_InvoiceDate">22/11/2008</field>
<field name="index_CustomerName">RENE POLFLIET</field>
<field name="index_MAPSUBJCT">Facture n° 10000 pour le client N° 10638</field>
<field name="index_MAPSEND">POLFLIET@sample.com</field>
<field name="index_NUMPAGE">PAGE 1</field>
</page>
 Page 2
<page name="NORMAL">
<field name="Counter_DocumentPage">29</field>
<field name="Counter_CurrentPage">2</field>
<field name="Counter_DocumentPageDuplex">29</field>
<field name="Counter_CurrentPageDuplex">2</field>
<field name="Counter_FrontSide">1</field>
<field name="Counter_Document_Collation">20</field>
<field name="Counter_Current_Collation">2</field>
<field name="Counter_Current_Collation_Pages">1</field>
<field name="Counter_Current_Collation_Page">1</field>
<field name="OMR_Collation">start_end</field>
<field name="OMR_mark_collation_break">1</field>
<field name="OMR_mark_fixedbars_1">1</field>
<field name="OMR_mark_page_1">1</field>
<field name="OMR_mark_page_2">1</field>
<field name="OMR_mark_page_3">0</field>
<field name="OMR_mark_collation_1">1</field>
<field name="OMR_mark_collation_2">1</field>
<field name="OMR_mark_collation_3">0</field>
<field name="OMR_mark_parity">1</field>
<field name="index_CustomerID">4274</field>
<field name="index_InvoiceID">10001</field>
<field name="index_InvoiceDate">27/3/2007</field>
<field name="index_CustomerName">GERARD DOUBLET</field>
<field name="index_MAPSUBJCT">Facture n° 10001 pour le client N° 4274</field>
<field name="index_MAPSEND">DOUBLET@sample.com</field>
<field name="index_NUMPAGE">PAGE 1</field>
</page>
…
</doc>
```

Remarques :

(\*) Ces deux champs n’apparaissent dans le XML que lorsque le calcul OMR est effectué en mode recto/verso.

(\*\*) En mode recto/verso, ces deux champs sont bien des compteurs de feuilles. En mode recto, ce sont des compteurs de pages.

(\*\*\*) Valeurs possibles de type de page :

* start : première page du pli
* middle : page intermédiaire dans le pli
* end: dernière page du pli
* start\_end : une seule page dans le pli

(\*\*\*\*) La marque de parité permet d’avoir un nombre impair de barres.

## Ajout des codes OMR

La deuxième étape consiste maintenant à réutiliser le fichier XML de données préalablement constitué pour apposer sur le document XPS d’origine alors considéré comme un calque, les marques KERN devant piloter le matériel de mise sous plis.

Voici ci-dessous un exemple de modèle M-Designer :

<figure><img src="/files/KWGDOLWuSLqAIvG3ww9c" alt="OX S OMR MD.png"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://documentation.efalia.com/documentations/efalia-compose/mapping-suite/onyx-server/utilisation/gestion-des-codes-omrkern.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
