> 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/appic/installation-et-administration/starpage.md).

# StarPage

### INTRODUCTION

**Prérequis :**

* OS : Windows7, 8, 10 – Server 2003, 2008/2008R2, 2012R2

HPUX, AIX, RedHat5/6/7, CentOS6/7, OpenSuse, Solaris10x86

* Proc : 2GHz minimum
* RAM : 2Go minimum
* HDD : 270Mo minimum
* Déclaration d’au moins une imprimante laser en local ou en mode TCP/IP (les adresses ou chemins de type UNC ne sont pas supportés)
* Droits d’administration requis lors de l’installation

Les besoins d’une informatique de gestion, outre de nécessaires calculs et le stockage d’informations nombreuses, se caractérisent par un nombre élevé d’états de tout type, que ce soit pour des documents expédiés vers l’extérieur de l’entreprise (factures, règlements, bulletins de salaires, etc…) ou destinés à l’intérieur (états statistiques, comptabilité, etc…).

L’impression de toutes ces listes demande au service Études Informatique le développement de nombreux programmes d’édition, tous plus fastidieux à élaborer les uns que les autres.

Un autre souci de ces mêmes interlocuteurs informatiques réside dans le fait que de nombreuses solutions clefs en main paie, comptabilité, ou autres… sont livrées avec des états qui ne permettent que des ajustements mineurs. Il est impossible, sans grever les budgets, d’avoir un état conçu de telle ou telle manière, avec, par exemple, le numéro de facture figurant sur deux endroits différents de la même page.

La suite logicielle **StarJet** est une réponse complète et adaptée à l’ensemble des objectifs relatifs à l’impression et à la vie des documents dans l’entreprise.

**StarPage**, le module **de production de documents**, exploite un concept nouveau évitant toute modification des programmes applicatifs. StarPage assure l’indépendance entre les applications générant des fichiers de données et la représentation de ces données sur la page.

Ses objectifs sont multiples :

* Limiter le nombre de programmes d’édition à écrire et donc à maintenir
* Eviter les accès multiples et redondants aux bases de données de l’entreprise
* Autoriser la personnalisation et la remise en page d’états existants
* Fournir un outil performant et efficace de re-pagination d’états
* Enfin, et ce n’est pas le moindre de ses objectifs, effectuer des calculs complémentaires sur les données préparées par l’application.

Des applications développées à partir du moteur d’impression StarPage sont actuellement disponibles dans les cas de figure suivants :

Facturation, Lettres-Chèques, Relevés de compte, Liasse fiscale (agréée par la Direction Générale des Impôts), Courriers automatiques, Etiquettes Galia, Codes à barre etc…

StarPage permet de composer des documents sous différentes formes. Ainsi, il peut aussi bien :

* produire du **document papier** sur l’imprimante grâce à son puissant moteur d’impression PCL.
* produire du **document électronique** visualisable en natif par les outils de la solution.
* produire des **fichiers PDF** afin de communiquer aisément l’information (e-mail) ou, pour l’archivage.
* générer des **fichiers ASCII**
* générer des **fichiers XML ou HTML**.

### CONTRAINTES ET PRE-REQUIS

#### Système d’exploitation

| **Système d’exploitation** | **Conseillé**                                                                                                                                                                                                                          | **Obsolète**                                                |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| Windows                    | <p>Windows 7, 8, 8.1, 10<br><br>Windows Server 2003<br><br>Windows Server 2008<br><br>Windows Server 2012</p>                                                                                                                          | <p>Windows 98<br><br>Windows NT 4.0<br><br>Windows 2000</p> |
| Unix                       | <p>HP-UX 11<br><br>AIX 4.3.3<br><br>Sun Solaris 5.5<br><br>Compaq TRU64 5.0 SCO Open Server 6 Linux<sup>(1)</sup> :<br><br>RedHat : version 5 et supérieur<br><br>Suse : version 11 et supérieur. Debian : version 2 et supérieur.</p> |                                                             |

#### Processeur minimum

| **Système d’exploitation** | **Processeur minimum requis** |
| -------------------------- | ----------------------------- |
| Windows & Unix             | tout processeur compatible    |

#### RAM

| **Système d’exploitation**                                                       | **Quantité de RAM minimale requise**<sup>(2)</sup> |
| -------------------------------------------------------------------------------- | -------------------------------------------------- |
| Unix/Linux                                                                       | 2Go min                                            |
| <p>Windows Server 2003<br><br>Windows Server 2008<br><br>Windows Server 2012</p> | 2Go min                                            |

* Pour une liste exhaustive des distributions Linux compatibles, merci de contacter le support à l’adresse électronique suivante : [support@appic.com.](mailto:support@appic.com)
* Plus la quantité de RAM sera élevée, plus les performances seront importantes.

#### Espace disque

| **Système d’exploitation** | **Espace disque minimal requis pour l’Application** |
| -------------------------- | --------------------------------------------------- |
| Windows                    | 400 Mo                                              |
| Unix                       | 80 Mo                                               |

### FONCTIONNALITES DE STARPAGE

#### Composition de documents en mode ASCII et mode XML

Le logiciel StarPage permet de composer des documents à partir de données brutes ou de données XML.

Les instructions spécifiques à l’un des deux modes (ASCII ou XML) présents dans le scénario StarPage déterminent le type de données en entrée.

Dans le cadre du mode XML, une instruction, XMLDoc Level n, définit le mode XML ainsi que le niveau de rupture des fichiers XML en plusieurs documents.

Afin de faciliter l’accès aux données XML ainsi que leur extraction, nous avons intégré dans StarPage une partie du langage d’interrogation de structure XML, **XPath**. Ce langage, recommandé par le W3C (World Wide Web Consortium), permet d’adresser différentes parties d’un document XML.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

<sup>(1)</sup>

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

* Les namespaces sont utilisés pour différencier des éléments XML ayant un même nom ou, pour grouper des données XML du même type. Les noms des attributs et des éléments utilisés dans des documents XML sont ainsi associés avec des namespaces identifiés par des références URI (Uniform Ressource Identifier).

#### Exemples de fonctionnalités StarPage

**Exemple1 en Mode ASCII**

Commençons par un exemple simple pour expliquer le principe de fonctionnement de StarPage. Il s’agit **de générer une facture à partir d’une page de données**.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

StarPage permet de reformater les données et de composer des documents à partir

des données brutes.

**Exemple1 en Mode XML**

**Il s’agit de générer une facture à partir d’un document XML.**

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

StarPage permet de reformater les données XML et de composer des documents à partir de ces données.

StarPage permet de traiter une série de pages de données.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

**StarPage permet de reformater les données et de composer plusieurs documents à l’aide d’un même layout.**

**Exemple 3 en Mode ASCII**

Compliquons pour illustrer les différentes possibilités de StarPage. Désormais, chaque **facture doit être accompagnée du bon de garantie correspondant à l’article facturé**.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

StarPage permet de **composer plusieurs pages physiques à partir d’une même page de données brutes**.

**Exemple 3 en mode XML**

Chaque facture doit être accompagnée du bon de garantie correspondant à l’article facturé.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

StarPage permet de **composer plusieurs pages physiques à partir d’un même document XML**.

**Exemple 4 en Mode ASCII**

De plus, un **layout peut être conditionnel** si, par exemple, le bon de garantie ne doit être imprimé que lorsque l’article facturé est une Télévision.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

StarPage permet de **composer intelligemment les documents**

**Exemple 4 en Mode XML**

Un **layout peut être conditionnel** si, par exemple, le bon de garantie ne doit être imprimé que lorsque l’article facturé est une Télévision.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

StarPage permet de **composer intelligemment les documents**

* Pour les commandes du workstream, se référer aux annexes.

**Génération de fichiers ASCII HTML et XML**

**Exemple en mode ASCII**

Il est possible de **générer des fichiers ASCII et, par extension, des fichiers HTML et XML** grâce à l’utilisation de la commande Prefix null.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

StarPage permet de formater les informations sur différents supports.

(1) Pour les commandes du workstream, se référer aux annexes.

**Exemple en mode XML**

Il est possible de **générer des fichiers ASCII et, par extension, des fichiers HTML et XML** grâce à l’utilisation de la commande Prefix null.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

StarPage permet de formater les informations sur différents supports.

* Pour les commandes du workstream, se référer aux annexes.

(2)

**Exemple en mode HTML**

Il est possible de **générer des fichiers HTML** suivant un modèle créé à partir de n’importe quel éditeur de texte ou éditeur HTML.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

Le fichier sp doit contenir le chemin du document HTML modèle précédé de la commande HTML. Les zones à remplacer par les données doivent être sous la forme : !(nom\_variable).

**Génération de fichiers PDF**

**Exemple en mode ASCII**

Il est aussi possible de générer des fichiers **pdf** en utilisant une ligne de commande spécifique (cf.annexes I- Schéma de fonctionnement du logiciel StarPage et annexes III- Options de génération de fichiers PDF).

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

La génération de fichiers pdf est une option de StarPage

* Pour les commandes du workstream, se référer aux annexes.

**Exemple en mode XML**

Il est aussi possible de générer des fichiers **pdf** en utilisant une ligne de commande spécifique (cf.annexes I- Schéma de fonctionnement du logiciel StarPage et annexes III- Options de génération de fichiers PDF).

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1)

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

(1) Pour les commandes du workstream, se référer aux annexes.

### Option DOC

**Ligne de commande**

La ligne de commande est comme suit (suivant le positionnement souhaité) :

* ./starpage -cprojet.sp -dfile=demo.doc -m:**doc** datafile
* ./starpage -cprojet.sp -dfile=demo.doc -m:**doca** datafile

**Positionnement**

Le paramètre **-m:doc** désigne le positionnement dit ‘basic’. Ce dernier est par **défaut** le mode qu’il est souhaitable d’utiliser. En revanche, le paramètre **-m:doca** désigne un positionnement ‘**absolu**’. Le texte dans la page est, dans ce cas, fait de blocs (selon les projets, ce positionnement peut être plus fidèle, mais moins pratique pour les modifications dans Word).

**Format**

Trois formats de sortie sont possibles, DOC, DOCX et RTF. Le choix se fait via le paramètre

**-dfile=**

* ./starpage -cprojet.sp -dfile=demo.**doc** -m:doc datafile
* ./starpage -cprojet.sp -dfile=demo.**docx** -m:doc datafile
* ./starpage -cprojet.sp -dfile=demo.**rtf** -m:doc datafile

**Limitations**

L’OptionDOC de StarPage ne supporte pas les éléments suivants :

* les rotations de textes et/ou d’objets
* polices autres que ARIAL, TIMES, COURRIER et UNIVERS sont à éviter
* les polices de taille inférieurs à 8pt
* les caractères spéciaux de type Wingdings, puces, …
* les paragraphes serrés, à faible espacement ou près des bords
* les textes verticaux
* les logos ou polices téléchargeables **.sfp** (seul le format TIFF est supporté)
* les codes à barres basés sur des polices téléchargeables **.sfp** (2D, Datamatrix, pdf417)
* le format **Unicode** (UTF-8)

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

En règle générale, nous ne pouvons toujours garantir une fidélité absolue du document Word. La présentation par rapport à la sortie directe Starpage et au PDF peut s’avérer altérée par rapport au positionnement des paragraphes, des sauts de pages,…, ainsi que les polices (caractères particuliers, taille des polices au niveau des paragraphes.

Il appartient au concepteur du projet de prendre en compte les limitations ci-dessus et d’adapter les projets en conséquence si des problèmes apparaissent à l’édition des documents Word.

## CONCEPTS

### CONCEPTS

**Fonction XPath**

**XPath**, fonction d’extraction des données dans **un fichier XML**, utilise des **chemins d’accès** pour sélectionner les nœuds ou ensembles de nœuds dans un document XML.

fichiers.

Les expressions les plus courantes sont listés ci-dessous :

| **/** | permet de sélectionner le nœud racine                                    |
| ----- | ------------------------------------------------------------------------ |
| **@** | permet de sélectionner les attributs                                     |
| \*    | se comporte comme un joker et permet de désigner n’importe quel élément. |

**Noeuds**

La fonction XPath traite un **document XML** comme une arborescence de nœuds.

Il y a différents types de nœuds :

**Nœud document ou nœud racine ( )**

* **Nœud élément ( )**

**Nœud attribut ( )**

* **Nœud texte ( )**

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

**Prédicats**

Les prédicats sont utilisés dans les fonctions XPath pour affiner une sélection, sélectionner un nœud spécifique ou un nœud contenant une valeur spécifique dans un document XML.

Ce sont des sous expressions placées entre crochets constituées d’une expression booléenne ou, plus simplement, d’un nombre. Dans ce dernier cas, le prédicat est interprété comme un indice de sélection.

Around the world in eighty days Jules Vernes 1962 Learning XML 39.95 /bookstore/book/title\[price=’39.95′] renvoie Learning XML /bookstore/book/title\[1] renvoie Around the world in eighty days ###### Page de données \*\*En mode ASCII\*\*, la page de données est l’entité de traitement de StarPage. Elle résulte de la rupture du fichier spool. Les quatre facteurs de rupture sont : - le code d’éjection, - le nombre de lignes par page, - la présence d’une chaîne de rupture, - dans le cas d’un flot RDI, la présence d’un header (ou en-tête) de rupture. ###### Variables Une variable est un objet représenté par un identifiant et renvoyant une valeur de type “chaîne de caractères”. Il en existe quatre types différents : - Variable Set - Variable field - Variable Zone - Variable prédéfinie. ###### Variable Set Une variable de type Set est une variable à laquelle une valeur peut être affectée grâce à la commande Set. Il est aussi possible de déclarer et d’utiliser des tableaux de variables. Dans ce cas, la variable est indicée. ###### Variable Field \*\*En mode ASCII\*\*, une variable de type Field est une variable permettant d’extraire des informations d’une page de données à partir d’une chaîne de caractères. Pour ce faire, il est indispensable de définir une séquence de caractères suffisamment affinée pour en permettre l’identification à coup sûr. ☼ \*Exemple\* : \*\*Field\*\* “TVA :”

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

L’information recherchée se situe après la chaîne “TVA :”, et sa longueur n’est limitée que par la fin de la ligne courante. ###### Variable Zone \*\*En mode ASCII,\*\* une variable de type \*\*Zone\*\* est une variable permettant d’extraire les informations d’une zone de la page de données. Si un numéro de page est indiqué, la valeur de la zone indiquée ne sera affectée à cette variable que lors du traitement de la page de données spécifiée. Elle ne sera plus affectée pour toute la suite du traitement. De plus, il est possible d’affecter à une telle variable une valeur par défaut qui sera écrasée lors du traitement de la page indiquée. ☼ \*Exemple\* : \*\*Zone\*\* L1:C2,14 PAGE 6 “Info2” La variable est initialisée par défaut par la chaîne de caractères “Info2” et elle ne verra son contenu changer que lors du traitement de la page numéro 6. ###### Variable prédéfinie Des \*\*variables internes\*\* sont à la disposition de l’utilisateur | \*\*SourcePageNumber\*\* | numéro de la page en cours d’utilisation dans le fichier de données | | --- | --- | | \*\*OutputPageNumber\*\* | numéro de la page imprimée | | \*\*StepNumber\*\* | numéro d’itération d’une boucle | | \*\*DataLinesNumber\*\*\
\
\*\*(réservé au mode ASCII)\*\* | nombre de ligne de données dans la page en cours d’utilisation dans le fichier de données | Ces variables peuvent être utilisées grâce à l’instruction \*\*Put\*\* pour afficher le numéro de la page courante, pour effectuer des tests ou pour toute autre opération interne. ###### Expression Ligne-Colonne (ExpLC) Une expression est une suite d’opérateurs et d’opérandes (variables et constantes). \*\*En mode ASCII\*\*, l’expression Ligne-colonne permet de désigner sur une page une zone d’une ligne par un coin supérieur gauche et un coin inférieur droit. Chaque coin correspond à un couple ligne- colonne Ce couple est indiqué sous la forme \*\*Ll:Cc,c\*\*. Le premier élément de la matrice est \*\*L1:C1,1.\*\* L’ExpLC permet de plus, un adressage dynamique, si l’indice affecté à la ligne est une variable. ☼ \*Exemple\* : LxCc,c ou x est une variable. ###### Expression String (ExpStr) L’expression String \*\*renvoie une chaîne de caractères\*\*. Elle peut contenir des données provenant de la page en cours de traitement (sous forme d’ExpLC) ou des appels à des variables. De plus, elle possède deux propriétés supplémentaires : Un certain nombre de fonctions peuvent être appliquées à cette expression Elles peuvent être combinées à l’aide d’opérateurs de concaténation. ###### Expression booléenne (ExpBool) L’expression booléenne \*\*renvoie une valeur vraie ou fausse\*\*. Ces valeurs s’obtiennent par l’utilisation de différents opérateurs de comparaison. ☼ \*Exemple\* : L’expression \*\*1 %< 2\*\* sera vraie - : ExpStr %< : Opérateur de comparaison sur valeurs numériques - : ExpStr ###### Condition Une condition peut être assimilée à une expression booléenne incluse dans une variable. Une condition est définie par un identifiant et peut ensuite être combinée ou réutilisée dans les tests. ☼ \*Exemple\* : condition PREMIERE\_PAGE is Source Page Number %= 1 If PREMIERE\_PAGE… Des conditions prédéfinies sont disponibles et récapitulées dans le tableau ci- dessous : | \*\*ENDOFFILE\*\* | retourne VRAI si le fichier de données est en fin de lecture | | --- | --- | | \*\*FILLER\*\* | retourne VRAI si l’environnement est StarFiller | | \*\*GED\*\* | retourne VRAI si l’environnement est StarSafe | | \*\*VIEW\*\* | retourne VRAI si l’environnement est StarView | ###### Bloc de données Utilisé en \*\*mode ASCII\*\*, un bloc de données, \*\*à la différence d’une ExpLC\*\*, correspond à un ensemble de données fixe dans la page. Il permet de désigner sur une page \*\*une zone\*\* par un coin supérieur gauche et un coin inférieur droit. Chaque coin correspond à un couple ligne-colonne. Ce couple est indiqué sous la forme \*\*Ll,l:Cc,c\*\*. Le premier élément de la matrice est \*\*L1,1: C1,1.\*\* On référence les premières 20 lignes par L1,20. Un bloc de données de 10 lignes et 20 colonnes commençant en ligne 2 et en colonne 5 correspond à L2,11:C5,24. Il est manipulé par les 3 instructions suivantes : Copy, Move, Erase. ###### Instruction Les instructions permettent de \*\*définir les actions à effectuer\*\*. Il en existe différents types pour, notamment, positionner les données dans la page, affecter des variables, tester des données, etc… Le tableau ci-dessous récapitule la liste des instructions StarPage : | \*\*Break\*\* | Demande l’arrêt de StarPage | Layout type compute | | --- | --- | --- | | \*\*Breakspool\*\* | Ferme le fichier spool | Layout type compute | | \*\*Call Macro\*\* | Appelle une macro. | Tous types de layouts | | \*\*Call Overlay\*\* | Appelle un overlay (c.a d. une\
\
séquence de commandes de fond de page) | Layouts type page et overlay | | \*\*Copy\*\* | Duplique un bloc de données de la source | Tous types de layouts | | \*\*Erase\*\* | Efface les informations contenues dans un bloc de données | Tous types de layouts | | \*\*ExitBlock\*\* | Permet de sortir d’un bloc d’instruction (comme une boucle) ou d’arrêter un layout de n’importe quel type que ce soit. | Tous types de layouts | | \*\*Move\*\* | Déplace un bloc de données\
\
de la source vers une autre destination | Tous types de layouts | | \*\*Put\*\* | Ajoute une chaîne de caractère, ou le résultat d’un traitement | Layouts type page et overlay | | \*\*Set\*\* | Affecte une valeur à une variable | Tous types de layouts | ###### Structure de contrôle Une structure de contrôle est une instruction permettant d’effectuer des tests et des boucles (= Portion de programme destinée à être exécutée plusieurs fois) indispensables au traitement des données. Il est possible par exemple d’imbriquer entre elles les structures de contrôle ou de mettre une suite d’instructions dans une structure de contrôle. Le tableau ci-dessous récapitule la liste des structures de contrôle : | \*\*For\*\* | Permet d’effectuer les instructions tant que la | | --- | --- | | variable n’est pas égale à l’expression de Fin | | | \*\*While\*\* | Permet d’effectuer les instructions tant que la | | variable n’est pas égale à l’expression de Fin | | | \*\*If\*\* | Permet d’effectuer les instructions si la condition est vérifiée | | \*\*SELECT…CASE\*\* | Permet de définir les instructions à effectuer selon le contenu d’une expression chaîne. | ###### Layout Un Layout est, selon StarPage, un ensemble de commandes s’appliquant sur une page de données brutes ou de données XML. Il existe 3 types de Layouts : - Layout type Page - Layout type Overlay - Layout type Compute ###### Layout type Page Le layout type Page correspond à une \*\*Page physique.\*\* Il a pour objectif \*\*d’effectuer une impression\*\*. ###### Layout type Overlay Le layout de type Overlay permet de stocker dans l’imprimante des informations qui seront utilisées ultérieurement. Il peut, par exemple, être utilisé pour rappeler sur toutes les pages d’une facture, des informations qui ne sont disponibles que sur la première page de données. Illustrons l’utilité d’un tel type de layout : On veut que le nom du client \*\*Mr Dupont\*\* apparaisse sur les 2 pages de la facture imprimée alors qu’il n’est présent que sur la première page de données : On va donc créer deux layouts : - \*\*Un layout de type Overlay\*\* (cf. ci-dessous) permettant l’affichage du nom du client

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

\- Le \*\*layout de type Page\*\* créé ci-dessous va donc appeler le layout de type Overlay en mémoire dans l’imprimante afin d’afficher le nom du client sur toutes les pages de la facture.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

 Le résultat de l’exécution de ce layout est illustré ci-dessous :

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

\###### Layout type Compute Le layout de type Compute permet : - - d’effectuer des calculs - de charger des variables avec le contenu de zones figurant sur la page de données en cours de traitement. Rien ne sera expédié vers l’imprimante au cours de son traitement et la page de donnée traitée n’est pas écrasée par la suivante.

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

\###### Macro Une macro est \*\*un ensemble d’instructions\*\*. Elle est définie par un identifiant et peut être appelée à partir d’une autre macro ou d’un Layout grâce à l’instruction Call Macro. ###### Tâches de StarPage Elles sont au nombre de 3 : - - le découpage des pages en \*\*mode ASCII\*\* - l’exécution des layouts - la génération d’un flux de commandes StarJet. ###### Découpage des pages \*\*En mode ASCII\*\*, la première tâche effectuée est le \*\*découpage du fichier spool en pages\*\* : Il existe plusieurs procédés pour découper les pages : - Le fichier spool contient des caractères de saut de page (ou form feed) - La commande Maxlines utilisée permet d’indiquer le nombre de lignes fixe à traiter sur chaque page de données. - La commande Page permet d’effectuer des ruptures de pages à partir d’une chaîne de caractères. Dans le cas d’un flot RDI généré par SAP, les pages sont découpées à partir d’un en- tête spécial. ###### Exécution des layouts Tous les layouts du fichier .sp sont ensuite exécutés conditionnellement ou non sur chaque page chargée (cf l’exemple 3 illustrant ce fait). ###### Génération d’un flux de commandes StarJet StarPage génère un flux de commandes StarJet (équivalent à un Langage de description du document) compréhensible par le programme StarJet. ## COMMANDES GLOBALES ### COMMANDES GLOBALES

{% hint style="warning" %}
Capture d’écran manquante (image supprimée de la documentation source d’origine).
{% endhint %}

\###### Form Cette commande permet d’indiquer le nom du fichier de commandes de définition de fond de page à inclure. | \*\*Syntaxe\*\* | \*\*form\*\* “fichier\_commandes” | | --- | --- | | \*\*Paramètres\*\* | fichier\_commandes est le nom du fichier de commandes à inclure | | \*\*Commentaires\*\* | - Le fichier dont le nom est indiqué sera inclus au début de l’impression. Ce fichier est un fichier de commandes classique, automatiquement généré pour vous par StarJet-Design. Il décrit l’ensemble des fonds de pages et des polices de caractères utilisés.\
\- Le fond de page défini sera donc imprimé avec les différentes pages de l’état. Les polices de caractères utilisées pour le reste de ce fichier de commandes font référence à celles définies dans le fond de page | | \*\*Exemple\*\* | form “fichier.sjp”\
\
…………\
\
………… | ###### Prefix Cette commande permet de remplacer le préfixe des commandes de StarJet. | \*\*Syntaxe\*\* | \*\*prefix\*\* ~~| | --- | --- | | \*\*Paramètres\*\* | s est un caractère spécial remplaçant la barre de fraction~~\
\
~~(“/”) utilisée pour l’exécution des commandes StarJet | | \*\*Commentaires\*\* | - Grâce à cette commande, il est possible de changer le caractère défini comme préfixe des commandes comprises par le programme de génération de l’impression. Cette commande est exécutée après l’exécution de la commande form.~~\
~~- Cela permet par exemple d’utiliser le caractère “/”\*\*,\*\* préfixe par défaut, en tant que caractère imprimable. | | \*\*Exemple\*\* | …………~~\
\
~~Put “/10/2002” to 10, 50 Text 1~~\
\
~~…………~~\
\
~~ Cette ligne de commande génère une erreur car le caractère “/” est par défaut le préfixe des commandes StarJet.~~\
\
~~Ce préfixe doit donc être modifié.~~\
\
~~…………~~\
\
~~prefix ‘!’~~\
\
~~…………~~\
\
~~Put “/10/2002” to 10, 50 Text 1~~\
\
~~…………~~\
\
~~…………~~\
\
~~La date /10/2002 sera copiée en 10:50 et imprimée en utilisant la police définie avec le numéro 1 | ###### Maxlines \*\*Réservée au mode ASCII\*\*, cette commande permet d’indiquer un nombre fixe de lignes à traiter sur chaque page de données. | \*\*Syntaxe\*\* | \*\*maxlines\*\* | | --- | --- | | \*\*Paramètres\*\* | nombre\_lignes est le nombre maximum de lignes par~~\
\
~~page. | | \*\*Commentaires\*\* | - Cette fonction sert a découper les pages du fichier de données entrant.~~\
~~- Cette fonction est essentielle lorsque le fichier à traiter ne contient pas d’autre condition d’éjection de page. | | \*\*Exemple\*\* | …………~~\
\
~~maxlines 66~~\
\
~~…………~~\
\
~~Dès que StarPage, en l’absence de toute autre condition d’éjection de page (cf § Découpage des pages), aura rencontré 66 lignes, il éjectera une nouvelle page. |Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Page \*\*Réservée au mode ASCII\*\*, cette commande permet les ruptures de page à partir d’une chaîne de caractères. | \*\*Syntaxe\*\* | \*\*Page = L\*\*\*\*:C\*\* \*\*= “\*\*Chaîne\*\*“\*\* | | --- | --- | | \*\*Paramètres\*\* | L est le numéro de la ligne de départ par rapport à la rupture de page~~\
\
~~C est le numéro de colonne de départ de la chaîne à trouver | | \*\*Exemple 1\*\* | Premier exemple :~~\
\
~~…………~~\
\
~~page = L2:C10 = “Facture”~~\
\
~~# … Coupe la page de la façon suivante :~~\
\
~~Ligne1 Ligne2~~\
\
~~… Ligne x~~\
\
~~… Ligne 11~~\
\
~~\*\*……….Facture\*\*  Rupture avec la valeur Ligne=2 donc “Facture” se retrouve en Ligne 2~~\
\
~~Ligne3 Ligne 4~~\
\
~~…………~~\
\
~~\*(icône manquante)\* | | \*\*Exemple 2\*\* | Second Exemple :~~\
\
~~…………~~\
\
~~page = L-3:C50 = “total”~~\
\
~~# … Coupe la page de la façon suivante :~~\
\
~~Ligne1 Ligne2~~\
\
~~..~~\
\
~~.. \*\*total\*\*  Ceci est considéré comme la ligne-3 Ligne19 Ceci est considéré comme la Ligne-2~~\
\
~~Ligne20 Ceci est considéré comme la Ligne–1 Ligne 1~~\
\
~~Ligne 2~~\
\
~~………… | | --- | --- |Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Default Cette commande permet de définir une commande d’environnement par défaut. | \*\*Syntaxe\*\* | \*\*Default\*\* | | --- | --- | | \*\*Paramètres\*\* | commande d’environnement représente la commande et son paramètre. | | \*\*Commentaires\*\* | - Une commande d’environnement (cf Chapitre Les commandes d’environnement) définie à l’aide de la commande Default sera valide pour tous les cas de figure ou une commande de même type n’est pas définie.~~\
~~- Si aucune commande d’environnement ne figure dans un fichier de commandes StarPage, les commandes figurant dans le fichier de commandes de définition du fond de page indiqué dans la commande Form, restent~~\
\
~~valides. | | \*\*Exemple\*\* | …………~~\
\
~~Default Portrait A4 Format=2 by 3 Default copies 3~~\
\
~~Default duplex 0~~\
\
~~…………~~\
\
~~Par défaut, les différentes pages de cet état seront imprimées en mode portrait sur du papier A4. Six pages logiques seront imprimées sur chaque page physique.~~\
\
~~Chaque page physique sera dupliquée trois fois. Le mode duplex est invalidé. | ###### \_MAXLOOP Cette commande permet d’arrêter une boucle après un grand nombre d’itérations. | \*\*Syntaxe\*\* | \*\*\_MAXLOOP\*\* | | --- | --- | | \*\*Paramètres\*\* | Entier est une valeur entière qui, si elle est égale à zéro,~~\
\
~~désactive le \_MAXLOOP. | | \*\*Commentaires\*\* | - Lorsque la boucle d’itération est stoppée, un message d’avertissement est généré.~~\
~~- Par fichier de commandes, il n’existe qu’une valeur de~~\
\
~~\_MAXLOOP.~~\
\
~~- La valeur par défaut du \_MAXLOOP est de 10 000 | | \*\*Exemple\*\* | …………~~\
\
~~\_MAXLOOP 5000~~\
\
~~…~~\
\
~~While TRUE # une condition qui est toujours vraie~~\
\
~~… # ensemble de commandes…~~\
\
~~…~~\
\
~~EndWhile~~\
\
~~…………~~\
\
~~Cette boucle s’arrêtera après 5000 itérations Le message suivant est alors généré :~~\
\
~~\*\*Avertissement : une boucle WHILE ou FOR a été stoppée au bout de 5000 tours\*\* | ###### Local Les trois commandes, Local Numbers separator, Local numbers decimal et Local numbers format permettent d’indiquer les modes d’impression par défaut des variables numériques. ###### Local numbers separator Définition du séparateur par défaut des milliers | \*\*Syntaxe\*\* | \*\*local numbers separator\*\* | | --- | --- | | \*\*Paramètres\*\* | sep représente un caractère | | \*\*Commentaires\*\* | - sep est indiqué entre quotes | | \*\*Exemple\*\* | …………~~\
\
~~local numbers separator \*\*‘.’\*\*~~\
\
~~………… | ###### Local numbers decimal Définition du séparateur par défaut des décimales | \*\*Syntaxe\*\* | \*\*local numbers decimal\*\* | | --- | --- | | \*\*Paramètres\*\* | sep représente un caractère | | \*\*Commentaires\*\* | - sep est indiqué entre quotes | | \*\*Exemple\*\* | …………~~\
\
~~local numbers decimal \*\*‘,’\*\*~~\
\
~~………… | ###### Local numbers format Définition du formatage par défaut des variables numériques | \*\*Syntaxe\*\* | \*\*local numbers format\*\* “formatage” | | --- | --- | | \*\*Paramètres\*\* | formatage représente le format modèle des valeurs~~\
\
~~numériques | | \*\*Commentaires\*\* | - “formatage” est indiqué entre double-quotes | | \*\*Exemple\*\* | …………~~\
\
~~local numbers format “0,00”~~\
\
~~…………~~\
\
~~Les nombres ont obligatoirement 2 décimales c’est à dire que 4,1 s’écrira 4,10.~~\
\
~~…………~~\
\
~~local numbers format “0,##”~~\
\
~~…………~~\
\
~~La limite est fixée à 2 décimales c’est à dire que 4,1 s’écrira 4,1 et 3,126 sera converti en 3,13.~~\
\
~~…………~~\
\
~~local numbers format “# ##0,00”~~\
\
~~…………~~\
\
~~Le # peut aussi servir à séparer les données en groupes c’est à dire que 1000 s’écrira 1 000. | ###### XMLDoc Level n \*\*Réservée au mode XML\*\*, cette commande permet de définir un projet StarPage gérant un flux XML en entrée ainsi que le niveau de découpage de ce flux. | \*\*Syntaxe\*\* | XMLDoc Level n | | --- | --- | | \*\*Paramètres\*\* | n est le niveau de découpage du flux XML en différents documents.~~\
\
~~1 : le flux représente un seul et même document.~~\
\
~~…~~\
\
~~n : chaque nœud de niveau n représente un document. | | \*\*Exemple\*\* | …………~~\
\
~~XMLDoc Level 3~~\
\
~~…~~\
\
~~Chaque nœud de niveau 3 représente un document. | ## DECLARATION DE \*\*VARIABLES\*\* ### DECLARATION DE VARIABLES ###### Value Cette commande permet de déclarer les variables et cela, que ce soient pour des variables Set, Field ou Zone. ###### Variable Set La commande Value permet de déclarer les variables créées à l’aide la commande Set. | \*\*Syntaxe\*\* | \*\*Value\*\* \*\*Is Var\*\* \[\*\*“\*\*init\*\*“\*\*] | | --- | --- | | \*\*Paramètres\*\* | nom représente le nom de la variable~~\
\
~~Var est le mot-clef indiquant qu’il s’agit d’une variable interne~~\
\
~~init est la valeur d’initialisation de la variable | | \*\*Commentaires\*\* | - Une valeur peut être affectée à la variable lors de sa création à l’aide de la commande Set. | | \*\*Exemple\*\* | …………~~\
\
~~Value exemple1 Is Var~~\
\
~~…………~~\
\
~~La variable, nommée \*\*exemple1\*\*, est une variable initialisée en chaîne vide. Elle pourra être utilisée pendant tout le reste du traitement et son contenu être modifié par une commande Set.~~\
\
~~…………~~\
\
~~Value exemple2 Is Var “Info”~~\
\
~~…………~~\
\
~~Une valeur par défaut est affectée à la variable,~~\
\
~~\*\*exemple2\*\*, à savoir la chaîne de caractères \*\*Info\*\*. | ###### Variable Zone \*\*Réservée au mode ASCII\*\*, la commande Value permet de déclarer des variables permettant d’extraire les informations d’une zone de la page de données. | \*\*Syntaxe\*\* | \*\*Value\*\* \*\*Is Zone\*\* \[\*\*Page\*\*]\[\*\*“\*\*init\*\*”\*\*] | | --- | --- | | \*\*Paramètres\*\* | nom représente le nom de la variable~~\
\
~~Zone est le mot-clef indiquant qu’il s’agit d’une variable extraite des données~~\
\
~~def\_zone représente la définition de la zone dans une syntaxe spécifique.~~\
\
~~Page est le mot-clef indiquant le numéro de la page d’extraction (du fichier d’entrée)~~\
\
~~P est le numéro de la page sur laquelle doit être effectuée l’extraction~~\
\
~~init est la valeur d’initialisation de la variable | | \*\*Commentaires\*\* | - Une valeur par défaut peut être affectée à la variable. Toutefois, lors du traitement de la page, cette valeur sera écrasée par la valeur extraite de la zone. L’exploitation d’informations contenues dans les pages de données peut, par exemple, permettre d’imprimer un nombre d’étiquettes dépendant d’une valeur située sur les pages de données.~~\
~~- Si un numéro de page est indiqué, la valeur de la zone ne sera affectée à cette variable que lors du traitement de la page de données spécifiée. | | \*\*Exemple\*\* | …………~~\
\
~~Value taux Is Zone L1:C2,14 Page 2~~\
\
~~…………~~\
\
~~\*\*taux\*\* est une variable de type Zone, son contenu étant lié aux informations contenues dans la page numéro2 de l’état traité, dans la zone indiquée, ligne 1, colonne 2 à~~\
\
~~14. Cette valeur peut être utilisée dans une des pages suivantes lors d’un calcul impliquant la valeur \*\*taux\*\*. | ###### Variable Field \*\*Réservée au mode ASCII,\*\* la commande Value permet de déclarer une variable, celle-ci permettant d’extraire les informations d’une page de données à partir d’une séquence de caractères suffisamment affinée pour en permettre l’identification. | \*\*Syntaxe\*\* | \*\*Value\*\* \*\*Is Field\*\* “Chaîne”\[\*\*NOCASE\*\*]~~\
\
~~\[\*\*COL\*\*] \[\*\*LINE\*\*]~~\
\
~~\[\*\*START\*\*<│>] \[\*\*STOP\*\*<│>] | | --- | --- | | \*\*Paramètres\*\* | nom représente le nom de la variable~~\
\
~~Field est le mot-clef indiquant qu’il s’agit d’une variable de type champ~~\
\
~~Chaîne indique la chaîne de caractères permettant de localiser l’information désirée.~~\
\
~~NOCASE est le mot-clef indiquant que la recherche sur chaîne ne doit pas tenir compte de la casse.~~\
\
~~COL est le mot-clef indiquant que la recherche sur chaîne doit se faire sur une colonne précise ou un intervalle de colonnes.~~\
\
~~LINE est le mot-clef indiquant que la recherche sur chaîne doit se faire sur une ligne précise ou un intervalle de lignes. inter est l’intervalle de lignes ou de colonnes sur laquelle doit être effectuée la recherche.~~\
\
~~START est le mot-clef indiquant l’endroit ou la recherche sur chaîne doit se faire.~~\
\
~~NUM1 indique le nombre de caractères à partir desquels la valeur souhaitée doit être extraite, en incluant la longueur de Chaîne.~~\
\
~~CAR1 indique le caractère délimitant le début du champ recherché.~~\
\
~~STOP est le mot-clef indiquant l’endroit ou la recherche sur chaîne doit se finir.~~\
\
~~NUM2 indique la taille maximale du champ à extraire~~\
\
~~CAR2 indique le caractère de fin de champ à extraire | | \*\*Commentaires\*\* | - LINE 1 indique que seule la ligne 1 doit être parcourue en recherche.~~\
\
~~LINE -10 indique que la recherche doit être effectuée sur les lignes 1 à 10 de la page.~~\
\
~~LINE 10-25 indique que la recherche se situe sur une plage située entre la ligne 10 et la ligne 25.~~\
\
~~- COL 1 indique que le premier caractère de la chaîne est localisé colonne1.~~\
\
~~COL 10-25 indique que le premier caractère de la séquence est situé entre la colonne 10 et la colonne 25.~~\
\
~~- Une fois, la chaîne localisée, les données peuvent être extraites soit en définissant un caractère de début, soit en spécifiant le nombre de colonnes entre le début de la chaîne et le début de l’information recherchée. Il est aussi possible de définir la fin du champ, soit par un caractère stop, ou en précisant la longueur du champ.~~\
~~- Une variable de type Field est, par définition volatile,~~\
\
~~c’est à dire que son contenu n’est pas conservé d’une page de données à l’autre. | | --- | --- | | \*\*Exemple\*\* | …………~~\
\
~~Value exemple Is Field “TOTAL” START ‘!’ STOP 12~~\
\
~~…………~~\
\
~~\*\*exemple\*\* est une variable de type Field se situant après la chaîne de caractères TOTAL, commençant~~\
\
~~après un point d’exclamation et ayant une longueur maximale de 12 caractères. |Capture d’écran manquante (image supprimée de la documentation source d’origine).exemple.LabelLine  Numéro de ligne où se trouve la chaîne. exemple.LabelColumn  Numéro de colonne où se trouve la chaîne. exemple.ValueLine  Numéro de ligne où la valeur a été effectivement extraite. exemple.ValueColumn  Numéro de colonne où la valeur a été effectivement extraite. exemple.Index  Indique le numéro d’occurrence du champ dans la page en cours. Celui-ci est égal à 0 si le champ n’est pas trouvé. Cet attribut n’a d’utilité qu’associé à la commande FindNext (cf § FindNext). ###### Tableau de variables La commande Value permet de déclarer un tableau de variables (ou ensemble de variables), chacune d’elle pouvant être identifiée grâce à un indice. | \*\*Syntaxe\*\* | \*\*Value\*\* \*\*Is Array \[\*\*Debut–Fin\*\*]\*\* | | --- | --- | | \*\*Paramètres\*\* | Nom représente le nom du tableau de variables~~\
\
~~Array \[Debut–Fin] est le mot-clé indiquant qu’il s’agit~~\
\
~~d’un tableau. Les valeurs début et fin sont des entiers supérieurs ou égaux à zéro, indiquant les bornes du tableau. | | \*\*Commentaires\*\* | - Il est possible de déclarer un tableau pour une variable seulement en mettant Début = Fin~~\
~~- Les variables de type tableau peuvent être utilisées de la même façon que les variables de type Set c’est à dire dans toutes les expressions ainsi que dans les instructions Set et comme indice d’une boucle For.~~\
~~- En cas de tentative d’accès en dehors des bornes, un message de Warning est généré à l’exécution et une valeur vide est renvoyée. | | \*\*Exemple\*\* | …………~~\
\
~~Value exemple Is Array \[1–10]~~\
\
~~…………~~\
\
~~Put exemple\[IndexEnCours] to 100, 110 text 1~~\
\
~~Set “toto” to exemple\[5] | ###### FindNext \*\*Réservée au mode ASCII,\*\* cette commande permet d’itérer la lecture des occurrences des variables Field dans la page de données. | \*\*Syntaxe\*\* | VarField\*\*.FindNext\*\* | | --- | --- | | \*\*Paramètres\*\* | VarField représente une variable de type Field | | \*\*Commentaires\*\* | - La recherche de la première occurrence du champ étant automatique, il ne faut donc pas faire appel à FindNext pour y accéder. | | \*\*Exemple\*\* | …………~~\
\
~~WHILE exemple.index%<> 0~~\
\
~~# tant que le champ est trouvé (cf § Variable Field pour la définition d’exemple.index).~~\
\
~~PUT exemple to \*\*…\*\*~~\
\
~~# utilisation de la valeur trouvée~~\
\
~~exemple.FindNext~~\
\
~~# recherche de l’occurrence suivante~~\
\
~~ENDWHILE~~\
\
~~…………~~\
\
~~Ceci est un exemple de recherche de toutes les occurrences d’une variable Field appelé exemple | ###### Reset \*\*Réservée au mode ASCII,\*\* cette commande permet de réinitialiser la valeur de la variable Field suite à la recherche, dans une page de données, de toutes les occurrences de cette variable. | \*\*Syntaxe\*\* | VarField\*\*.Reset\*\* | | --- | --- | | \*\*Paramètres\*\* | VarField représente une variable de type Field | | \*\*Commentaires\*\* | - Cette commande est donc utilisée lors de recherches consécutives dans une même page de données.~~\
~~- A chaque début de traitement, il est conseillé de réinitialiser la variable Field. | | \*\*Exemple\*\* | …………~~\
\
~~exemple.Reset~~\
\
~~WHILE exemple.index%<> 0~~\
\
~~# tant que le champ est trouvé (cf § Variable Field pour la définition d’exemple.index).~~\
\
~~PUT exemple to \*\*…\*\*~~\
\
~~# utilisation de la valeur trouvée~~\
\
~~exemple.FindNext~~\
\
~~# recherche de l’occurrence suivante~~\
\
~~ENDWHILE~~\
\
~~…………~~\
\
~~exemple est réinitialisé à chaque début de traitement | ## DECLARATION DE CONDITIONSCapture d’écran manquante (image supprimée de la documentation source d’origine).\*\*STARPAGE /MANUEL DE REFERENCE\*\* ### DECLARATION DE CONDITIONS La commande condition permet de définir une condition (see also § Conditions dans le manuel StarJet-Design) | \*\*Syntaxe\*\* | \*\*condition\*\* \*\*is\*\* | | --- | --- | | \*\*Paramètres\*\* | nom\_de\_condition représente le nom affecté à la condition~~\
\
~~expression booléenne représente une expression renvoyant une valeur vraie ou fausse | | \*\*Commentaires\*\* | - condition, nommée comme indiqué, est créé dans les tables internes de StarPage. Ce nom peut ensuite être utilisé en conjonction avec la majorité des commandes afin d’indiquer un traitement particulier si la condition est considérée comme vraie.~~\
~~- doit obéir à la syntaxe définie.~~\
~~- Il existe des conditions pré-définies dans le logiciel, évoluant (si nécessaire) en fonction du déroulement des opérations (cf § Condition). | | \*\*Exemple\*\* | condition condfacture is L10:C20,26 = “FACTURE”~~\
\
~~La première condition, nommée condfacture sera considérée comme étant vraie si, la chaîne de caractères “FACTURE” se trouve dans une page de données ligne 10 et colonne 20 et, quelque soit la casse.~~\
\
~~L’appel à la condition est possible en indiquant le nom de la condition :~~\
\
~~…………~~\
\
~~condition condfacture is L10:C20,26 = “FACTURE”~~\
\
~~…~~\
\
~~…~~\
\
~~\[condfacture] Put “Montant total” to 100,120 text 1~~\
\
~~………… | ## INSTRUCTIONS ET COMMANDES DE CONTRÔLE ### LES INSTRUCTIONS et COMMANDES DE CONTRÔLE ###### Généralités Chaque instruction ou commande de contrôle peut être conditionnée c’est à dire précédée d’une condition. ###### Instruction Une instruction est une étape de programmation qui indique à l’ordinateur les actions qu’il doit effectuer. Il en existe douze : - Break - Breakspool - Call Macro - Call overlay - Copy - Erase - ExitBlock - Move - PDF417 - Put - GetParagraphInfo - Set ###### Break Cette commande permet d’arrêter StarPage lors de l’exécution d’un layout de type compute (cf Chapitre Compute). | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*Break\*\* | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne définissant la condition. | | \*\*Commentaires\*\* | - Cette commande permet un arrêt du déroulement de StarPage. Il est ainsi possible, après avoir testé une condition qui serait liée au contenu de vos données ou liée à une variable d’environnement, d’interrompre~~\
\
~~purement et simplement le traitement en cours. | ###### Breakspool Cette commande permet, lors de l’exécution d’un layout de type compute (cf Chapitre Compute), d’arrêter le workstream~~<sup>~~(1)~~</sup>\~\~ afin de répartir le spool sur plusieurs imprimantes et donc, de paralléliser l’impression. | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*]\*\*Breakspool\*\* | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne définissant\~\~\
\
~~la condition. | | \*\*Commentaires\*\* | - Cette commande permet une fermeture immédiate du fichier spool généré par StarPage, associé à la réouverture d’un nouveau fichier. Automatiquement, StarPage régénère l’environnement nécessaire à l’impression correcte du document.~~\
~~- Cette fonctionnalité peut être particulièrement utile lorsque le traitement est effectué sur un très gros fichier et que l’on souhaite paralléliser l’édition physique en la répartissant sur différentes imprimantes. |Capture d’écran manquante (image supprimée de la documentation source d’origine).(1) Pour les commandes du workstream, se référer aux annexes. ###### Call Macro Cette commande permet de faire appel à une macro (pour de plus amples informations cf Chapitre Macros) | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*Call\*\* | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne définissant la condition.~~\
\
~~Nom\_Macro représente le nom de la macro à appeler. | | \*\*Commentaires\*\* | - Une macro appelée doit avoir précédemment été définie | | \*\*Exemple\*\* | …………~~\
\
~~MACRO Calcul\_Euro~~\
\
~~Set 6.56 to Taux Euro~~\
\
~~..~~\
\
~~Layout Facture~~\
\
~~..~~\
\
~~..~~\
\
~~Call Calcul\_Euro~~\
\
~~………… | ###### Call Overlay Cette commande permet d’appeler une séquence de commandes de fond de page. | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*call-overlay\*\* | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne définissant la condition.~~\
\
~~over représente un numéro d’overlay tel que défini dans le fichier de commandes de fond de page. | | \*\*Commentaires\*\* | - Cette commande permet, lors de la mise en page des informations, d’appeler dynamiquement un overlay (un ensemble de commandes de fond de page) défini dans le fichier de commandes StarJet (.sjp)~~\
~~- Un tel appel, contrairement à la commande \*\*use-overlay\*\*, est purement ponctuel, et peut être déclenché par un test effectué sur les données. | | \*\*Exemple\*\* | …………~~\
\
~~condition condfacture is L5:C3,9 = “FACTURE” condition total is L48:C2 = “T”~~\
\
~~..~~\
\
~~layout fac when condfacture use overlay 1~~\
\
~~\[total] call-overlay 3~~\
\
~~…………~~\
\
~~si la chaîne de caractères FACTURE est détectée en ligne 5 colonne 3 à 9, alors l’overlay 1 (fond de page facture) est activé. Si, lors du traitement de cette page, la condition TOTAL est considérée comme vraie (c’est à dire qu’une lettre T est contenue sur la ligne 48, colonne~~\
\
~~2) alors le schéma dessiné dans l’Overlay 3 est ajouté sur le fond de page FACTURE. | ###### Copy \*\*Réservée au mode ASCII,\*\* cette commande permet de copier et \*\*ceci, sans l’effacer de la source\*\* un bloc de données. ###### Syntaxe \*\*Paramètres\*\* ###### Commentaires \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*copy\*\* \*\*to\*\* , \[\*\*text\*\* ] \[\*\*rotate\*\* ] \[\*\*gray\*\* ] \[\*\*density\*\* ] \[\*\*linespacing\*\* ] ExpBool représente une expression booléenne définissant la condition. bloc représente la définition du bloc de données (cf § Bloc de données) - représente le point sur l’axe des X PCL ou doit commencer la copie du bloc - représente le point sur l’axe des Y PCL ou doit commencer la copie du bloc t représente la police à utiliser pour imprimer le bloc angle représente l’angle de rotation du bloc (valeurs possibles : 0, 90, 180, 270) shade représente le niveau de grisé à utiliser lors de l’impression d représente la densité à utiliser pour imprimer le bloc ls représente l’espacement interligne, exprimé en points PCL, pour ce bloc. - Cette commande peut exécuter deux actions à la fois : ###### – définir, sur la matrice d’entrée représentée par la page de données, un bloc de données à copier. – définir aussi le mode d’impression de ce bloc. - Le positionnement exprimé en points PCL correspond au coin inférieur gauche du premier caractère imprimé. Il est autorisé d’utiliser des paramètres dynamiques ou des variables pour définir ces deux points. - Le numéro de police indiqué dans la commande text permet de définir la police de caractères à utiliser pour imprimer ce bloc. Ce numéro est celui défini dans le fichier de commandes StarJet (.sjp). - Le paramètre density, s’il est utilisé, permet de définir la densité avec laquelle ce bloc sera imprimé. Ce paramètre est exprimé en nombre de caractères par pouces et n’est utilisable qu’avec des polices de caractères à espacement fixe. | \*\*Commentaires\*\* | - Le paramètre linespacing permet de définir, en points PCL l’espace interligne à utiliser pour l’impression des différentes lignes de ce bloc de données.~~\
~~- La fonction Copy n’est active que pour le layout dans lequel elle a été insérée. | | --- | --- | | \*\*Exemple\*\* | …………~~\
\
~~copy L10, 12 : C10, 19 to 1000, 200 text 2~~\
\
~~linespacing 100~~\
\
~~…………~~\
\
~~Le bloc de données d’entrée commençant ligne 10 colonne 10, bloc de 10 caractères de long et de 2 lignes de haut (donc jusqu’à la colonne 19, ligne 12) sera copié en 1000:200 (points PCL sur la page) et imprimé en~~\
\
~~utilisant la police définie avec le numéro 2, et en laissant entre chaque ligne 100 points PCL. |Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Erase \*\*Réservée au mode ASCII\*\*, cette commande permet d’effacer les informations d’un bloc de données. | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*erase\*\* | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne définissant la condition.~~\
\
~~bloc représente la définition du bloc de données (cf § Bloc de données) | | \*\*Commentaires\*\* | - Cette commande efface ( rend indisponible) toutes les informations contenues dans ce bloc sur la page de données en cours.~~\
~~- Cette fonction n’est active que pour le layout dans lequel elle a été insérée. Après exécution de ce layout, les données réapparaissent. | | \*\*Exemple\*\* | …………~~\
\
~~erase L6,7:C1,132~~\
\
~~…………~~\
\
~~Le bloc de données situé ligne 6 de la première colonne à la colonne 132 est supprimé. |Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).\*\*SCHEMATISATION DE LA FONCTION ERASE : SUPPRESSION D’UN MORCEAU DE BLOC AVANT LA COPIE DU BLOC DANS SA TOTALITE\*\* Data A imprimer Nom\_Facture Monsieur Dupont 32, rue des processions 91240 Saint Michel sur orge \*\*2- Copy\*\* Tel : 044.56.23.10 \*\*1- Erase\*\* ###### ExitBlock Cette commande permet selon les cas, de sortir d’un bloc d’instructions (comme une boucle) ou d’arrêter l’exécution d’un layout de n’importe quel type. | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*ExitBlock\*\* | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne définissant~~\
\
~~la condition. | | \*\*Commentaires\*\* | - Cette commande permet de sortir :~~\
~~- d’une boucle FOR~~\
~~- d’une boucle WHILE~~\
~~- d’un layout de n’importe quel type (page, overlay, compute, ou macro).~~\
~~- Les instructions IF – ENDIF et SELECT ne sont pas considérées comme des blocs par la commande ExitBlock. Dans ce cas, l’instruction ExitBlock~~\
\
~~passe au travers de façon transparente et remonte jusqu’au premier bloc appelant. | | \*\*Exemple\*\* | …………~~\
\
~~Layout Tata~~\
\
~~…~~\
\
~~While ConditionBoucle If ArrêtBoucle~~\
\
~~ExitBlock # sort de la boucle EndIf~~\
\
~~EndWhile~~\
\
~~………… | ###### Move \*\*Réservée au mode ASCII\*\*, cette commande permet de déplacer un bloc de données de la matrice d’entrée. | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*move\*\* \*\*to\*\* , \[\*\*text\*\* ]~~\
\
~~\[\*\*rotate\*\* ] \[\*\*gray\*\* ] \[\*\*density\*\* ] \[\*\*linespacing\*\* ] | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne permettant de définir une condition.~~\
\
~~bloc représente la définition du bloc de données (cf § Bloc de données)~~\
\
~~1. représente le point sur l’axe des X PCL ou doit commencer l’ajout de chaîne de caractères~~\
~~2. représente le point sur l’axe des Y PCL ou doit commencer l’ajout de chaîne de caractères~~\
\
~~t représente la police à utiliser pour imprimer le bloc angle représente l’angle de rotation du bloc (valeurs possibles : 0, 90, 180, 270)~~\
\
~~shade représente le niveau de grisé à utiliser lors de l’impression~~\
\
~~d représente la densité à utiliser pour imprimer le bloc~~\
\
~~ls représente l’espacement interligne, exprimé en points~~\
\
~~PCL, pour ce bloc | | \*\*Commentaires\*\* | - Cette commande exécute deux actions à la fois :~~\
~~- Elle définit, sur la matrice d’entrée représentée par la page de données, un bloc d’information à déplacer~~\
~~- Elle définit le mode d’impression de ce bloc.~~\
~~- Le positionnement exprimé en points PCL correspond au coin inférieur gauche du premier caractère imprimé. Ce bloc est déplacé vers l’adresse indiquée sur la page.~~\
~~- Le numéro de police indiqué dans la commande text permet de définir la police de caractères à utiliser pour imprimer ce bloc. Ce numéro est celui défini dans le fichier de commandes StarJet (.sjp).~~\
~~- Le paramètre density permet de définir la densité avec laquelle ce bloc sera imprimé. Ce paramètre est exprimé en nombre de caractères par pouces et n’est utilisable qu’avec des polices de caractères à espacement fixe. | | | - Le paramètre linespacing permet de définir, en points PCL l’espace interligne à utiliser pour~~\
\
~~l’impression des différentes lignes de ce bloc de données. | | --- | --- | | \*\*Exemple\*\* | …………~~\
\
~~move L2,5:C10,40 to 1800,600 text 2~~\
\
~~linespacing 100~~\
\
~~…………~~\
\
~~Le bloc de données d’entrée commençant colonne 10 ligne 2, bloc de 30 caractères de long et de 3 lignes de haut (donc jusqu’à la colonne 40 et la ligne 5) sera déplacé en 1800:600 (points PCL sur la page), imprimé en utilisant la police définie avec le numéro 2, et en laissant entre chaque ligne~~\
\
~~100 points PCL. |Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Bar\_PDF417 Cette commande permet d’insérer un code à barres PDF417 (cf § Codes à barre / PDF417 et annexes II). | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*Bar\_PDF417\*\* () \*\*to\*\*\*\*,\*\*~~\
\
~~\*\*text\*\* \*\*UnitHeight\*\* \*\*UnitWidth\*\* \[\*\*ErrorLevel\*\* ] \[\*\*Rows\*\* ]~~\
\
~~\[\*\*Cols\*\* ] \[\*\*AspectRatioVert\*\* ] \[\*\*AspectRatioHor\*\* ]~~\
\
~~\[\*\*Truncate\*\*] | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne permettant de définir une condition.~~\
\
~~() représente une liste d’expressions StarPage (pouvant être réduite à une seule expression).~~\
\
~~x,y représentent les coordonnées du coin supérieur gauche du symbole PDF417 (si Rotate = 0).~~\
\
~~UnitHeight représente la hauteur des lignes du symbole, celle-ci étant spécifiée dans la police (plusieurs hauteurs peuvent être présentes dans le fichier de police).~~\
\
~~UnitWidth représente la largeur de l’unité barre, celle-ci étant spécifiée dans la police.~~\
\
~~ErrorLevel représente le niveau de sécurité pour la reconstruction du texte en cas de dégradation du symbole. Ce paramètre est optionnel. Il varie de 0 à 8 et conditionne le nombre de mots-code de correction d’erreur générés dans le symbole. Plus ce niveau est élevé, plus le symbole va être volumineux. Par défaut, cette valeur est 0.~~\
\
~~Rows représente le nombre de lignes du symbole. Il doit être compris entre 3 et 90.~~\
\
~~Cols représente le nombre de colonnes de données du symbole. Il doit être compris entre 1 et 30.~~\
\
~~AspectRatioVert et AspectRatioHor représentent l’aspect du symbole dans ses proportions entre sa hauteur et sa largeur, ce qui joue sur le nombre de lignes et de colonnes.~~\
\
~~Ces deux paramètres doivent être présents ensemble. Chacun doit être compris entre 1 et 10. Par défaut leur valeur sont 1 et 2 (ratio 1:2). | | |  la spécification d’un paramètre Rows ou d’un paramètre Cols prime sur la spécification du paramètre Aspect.~~\
\
~~Truncate produit un symbole PDF417 Tronqué. Compatible avec le PDF417 standard, il permet de réduire~~\
\
~~le symbole par l’omission de certains mots-code, tel le stop pattern. | | --- | --- | | | ………… | | | Bar\_PDF417 (“APPIC”) To 472, 693 Text 6 | | | UnitHeight 24 UnitWidth 3 | | | ………… | | \*\*Exemple\*\* | ………… | | | Bar\_PDF417(“STARTPOS”;”132534″;”91240″;”0015 | | | 0″;”O”;”0000015000″;”0000021000″;”N”;”APPIC | | | SA form management”;”France”;”APPIC invoice | | | number”; “ENDPOS”) To 1313, 1226 Text 6 | | | UnitHeight 12 UnitWidth 3 AspectRatioVert 3 | | | AspectRatioHor 1 | | | ………… | | \*\*Messages d’erreur\*\* | \*\*Messages d’erreurs susceptibles d’être générés par une commande incorrecte\*\* | | --- | --- | | \*\*Messages\*\* | \*\*Causes\*\* | | error level already defined | ErrorLevel est spécifié~~\
\
~~plusieurs fois | | invalid error level | ErrorLevel a été spécifié avec~~\
\
~~une valeur qui n’est pas comprise entre 0 et 8 | | rows already defined | Rows est spécifié plusieurs fois | | invalid rows number | Rows est spécifié avec une~~\
\
~~valeur qui n’est pas comprise entre 3 et 90 | | data columns already defined | Cols est spécifié plusieurs fois | | invalid data columns number | Cols est spécifié avec une valeur~~\
\
~~qui n’est pas comprise entre 1 et 30 | | aspect ratio vertical~~\
\
~~already defined | AspectRatioVert est~~\
\
~~spécifié plusieurs fois | | invalid aspect ratio vertical | AspectRatioVert est~~\
\
~~spécifié avec une valeur qui n’est pas comprise entre 1 et 10 | | aspect ratio horizontal already~~\
\
~~defined | AspectRatioHor est spécifié plusieurs fois | | invalid aspect ratio horizontal | AspectRatioHor est spécifié~~\
\
~~avec une valeur qui n’est pas comprise entre 1 et 10 | | invalid aspect ratio | AspectRatioVert est défini alors que AspectRatioHor~~\
\
~~n’est pas défini, ou l’inverse | | truncate already~~\
\
~~defined | Truncate est spécifié plusieurs~~\
\
~~fois | | unit width already defined | UnitWidth est spécifié~~\
\
~~plusieurs fois | | missing unit width | UnitWidth n’est pas spécifié~~\
\
~~alors que ce paramètre est obligatoire | | unit height already~~\
\
~~defined | UnitHeight est spécifié~~\
\
~~plusieurs fois | | missing unit height, | UnitHeight n’est pas spécifié~~\
\
~~alors que ce paramètre est obligatoire | | \*\*Messages d’erreur\*\* | \*\*Messages d’erreurs susceptibles d’être générés par un problème de codage\*\* | | --- | --- | | \*\*Messages\*\* | \*\*Causes\*\* | | PDF417 error: invalid character in string | Un caractère du texte n’est pas reconnu par l’algorithme d’encodage. | | PDF417 error: incorrect rows number~~\
\
~~| Le nombre de lignes est en dehors des limites 3-90. | | PDF417 error: incorrect columns number | Le nombre de colonnes est en dehors des limites 1-30. | | PDF417 error: not~~\
\
~~enough rows or columns | Le symbole n’a pas assez de lignes ou de colonnes pour coder tout le texte. Le texte est trop grand. | | PDF417 error: too many characters to~~\
\
~~code | Le texte est trop volumineux pour tout coder. | ###### Bar\_DataMatrix Cette commande permet d’insérer un code à barres DataMatrix (cf § Codes à barre / DataMatrix et annexes II). | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*Bar\_DataMatrix\*\* (~~\
~~… ; Expn>) \*\*to\*\* \*\*,\*\*~~\
\
~~\*\*text\*\* \[\*\*ModuleWidth\*\* ] \[\*\*Rows\*\* \*\*Cols\*\* ] | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne permettant de définir une condition.~~\
\
~~() représente une liste d’expressions StarPage (pouvant être réduite à une seule expression).~~\
\
~~ Dans le résultat lu, les différentes expressions sont séparées par un carriage return (code ASCII 13).~~\
\
~~Les expressions acceptées par la commande Bar\_DataMatrix peuvent représenter des chaînes de caractères standard, des séquences de nombres hexadécimaux ou, des séquences de nombres décimaux. Dans les deux derniers cas, ces séquences représentent des valeurs de codes ASCII. Cependant, pour différencier le mode d’interprétation de l’expression, il est nécessaire de préfixer la chaîne par une séquence spéciale :~~\
\
~~- pas de préfixe signifie une chaîne standard ;~~\
~~- un préfixe ‘0x’ signifie une séquence de nombres hexadécimaux, chaque nombre hexadécimal étant constitué de deux chiffres ;~~\
~~- un préfixe ‘0d’ signifie une séquence de nombres décimaux, chaque nombre décimal étant constitué de trois chiffres.~~\
\
~~x,y représentent les coordonnées du coin supérieur gauche du symbole DataMatrix.~~\
\
~~ModuleWidth est une valeur entière représentant la taille de chaque module. Par défaut, la taille du module est de 6 (environ 20 millièmes de pouce) et les valeurs acceptés sont de 3 à 12.~~\
\
~~Rows est une valeur entière qui représente le nombre de lignes du symbole.~~\
\
~~Cols est une valeur entière qui représente le nombre de colonnes du symbole.~~\
\
~~Par défaut, le nombre de modules par ligne et par colonne est déterminé automatiquement pour avoir le plus petit symbole carré possible. | | \*\*Exemple\*\* | …………~~\
\
~~Bar\_DataMatrix (L8:C1,60) To 1335, 256 Text~~\
\
~~5 ModuleWidth 5 Rows 26 Cols 26~~\
\
~~………… | | --- | --- | | \*\*Messages d’erreur\*\* | \*\*Messages d’erreurs susceptibles d’être générés par une commande incorrecte\*\* | | \*\*Messages\*\* | \*\*Causes\*\* | | rows already defined | Rows est spécifié plusieurs fois. | | data columns already~~\
\
~~defined | Cols est spécifié plusieurs fois | | unit width already~~\
\
~~defined | ModuleWidth est spécifié plusieurs fois | | \*\*Messages d’erreurs susceptibles d’être générés par un problème de codage\*\* | | | \*\*Messages\*\* | \*\*Causes\*\* | | DataMatrix : encoding error | Le processus d’encodage des données a échoué | | DataMatrix : correction code generation problem | Le processus de génération de codes de correction d’erreur a échoué | ###### Put Cette commande permet d’ajouter une chaîne de caractères ou le résultat d’un traitement, ainsi que de l’aligner à sa convenance. L’expression string, ou paragraphe, peut être créé de manière dynamique et scindé selon différentes conditions. | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*put\*\* \*\*to\*\*~~\
\
~~,~~\
\
~~\[(\*\*Justify\*\* or \*\*AlignLeft\*\* or \*\*AlignRight\*\* or~~\
\
~~\*\*Center\*\*)] \[\*\*Width\*\* ]~~\
\
~~\[(\*\*MaxLinesCount\*\* or \*\*MaxHeight\*\* or~~\
\
~~\*\*MaxClipY\*\*)\*\*<\*\*cstr\*\*>\*\*] \[\*\*text\*\* ] \[\*\*LineSpacing\*\* ] \[\*\*rotate\*\* ] \[\*\*gray\*\* ] \[\*\*density\*\* ] | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne permettant de définir la condition.~~\
\
~~expression string représente la chaîne de caractères ou le résultat d’un traitement à ajouter lors de l’impression (cf Chapitre Expression String)~~\
\
~~1. représente le point sur l’axe des X PCL ou doit commencer l’ajout de la chaîne de caractères ou du résultat de traitement.~~\
~~2. représente le point sur l’axe des Y PCL ou doit commencer l’ajout de la chaîne de caractères ou du résultat de traitement.~~\
\
~~Justify est le mot-clé utilisé pour justifier (aligner à droite et à gauche) l’expression string c’est à dire que toutes les lignes, sauf la dernière, ont la même longueur.~~\
\
~~AlignLeft est le mot-clé utilisé pour aligner à gauche l’expression string c’est à dire que toutes les lignes démarrent à la même coordonnée X.~~\
\
~~AlignRight est le mot-clé utilisé pour aligner à droite l’expression string c’est à dire que toutes les lignes finissent à la même coordonnée X.~~\
\
~~Center est le mot-clé utilisé pour centrer l’expression string c’est à dire que le milieu de toutes les lignes est placé sur la même coordonnée X.~~\
\
~~Width est la largeur du paragraphe exprimé en points PCL. | Cstr représente une contrainte de scission du paragraphe (nombre de lignes maximum du paragraphe exprimé en points si précédé de MaxLinesCount, hauteur maximale du paragraphe exprimée en points PCL si précédé de MaxHeight ou coordonnée y de fin du paragraphe exprimée en points PCL si précédé de MaxClipy) t représente la police à utiliser pour imprimer la ligne angle représente l’angle de rotation de la ligne (valeurs possibles : 0, 90, 180, 270) ls représente l’espacement entre deux lignes, exprimé en points PCL. shade représente le niveau de grisé à utiliser lors de l’impression. d représente la densité à utiliser pour imprimer la ligne.  expression string et y peuvent aussi être précédés par @ permettant de modifier l’identifiant de variable (cf exemple). | \*\*Exemple 1\*\* | …………~~\
\
~~Put L1:C10, 20 To 10, 20 Text 1~~\
\
~~…………~~\
\
~~…………~~\
\
~~Put “\*Il y a\*” + DataLinesNumber + “\*lignes sur cette page\*” To 100, 200 Text 7 Density 9~~\
\
~~…………~~\
\
~~La chaîne de caractères “\*Il y a\* (nombre de lignes de données dans la page (cf § Variable prédéfinie) \*lignes sur cette page\*” sera copiée en 100:200 et imprimée en utilisant la police définie avec le numéro 7 et une densité de 9 caractères par pouce.~~\
\
~~…………~~\
\
~~Put “Anciennement \*\*Raguse\*\*, avec son histoire vénitienne puis turque, Dubrovnik est une ville et un port de Croatie sur l’Adriatique. Elle fut fondée au VIIème siècle par des Grecs d’Épidaure fuyant les invasions slaves et avares.” To 500, 500 Justify Width 900 Text 4 LineSpacing 50~~\
\
~~…………~~\
\
~~…………~~\
\
~~Put “Anciennement \*\*Raguse\*\*, avec son histoire vénitienne puis turque, Dubrovnik est une ville et un port de Croatie sur l’Adriatique. Elle fut fondée au VIIème siècle par des Grecs d’Épidaure fuyant les invasions slaves et avares.” To 500, 500 Justify Width 900 MaxLinesCount 3 Text 4~~\
\
~~LineSpacing 50~~\
\
~~…………~~\
\
~~La chaîne de caractères sera justifiée et copiée en 500:500 sur une largeur de 900 points PCL puis, imprimée en utilisant la police définie avec le numéro 4. L’espace entre les lignes est de 50 points PCL et le nombre maximum de lignes du paragraphe est de 3. | | --- | --- |Capture d’écran manquante (image supprimée de la documentation source d’origine).| \*\*Exemple 2\*\* | …………~~\
\
~~Value parag Is Var Value y Is Var~~\
\
~~…………~~\
\
~~Set “Support Services. If this product was received as part of a \”bundle\” with an other software or hardware manufacturer’s product, end-users are required to contact that manufacturer for first level support.” to parag~~\
\
~~Set 500 to y~~\
\
~~…………~~\
\
~~Put @parag To 1300, @y Justify Width 450 MaxLinesCount 2 Text 4 LineSpacing 40~~\
\
~~Put @parag To 1750, @y Justify Width 450 MaxHeight 100 Text 4 LineSpacing 40~~\
\
~~Put @parag To 1300, @y Justify Width 450 MaxClipY 800 Text 4 LineSpacing 40~~\
\
~~Put @parag To 1750, @y Justify Width 450 Text 4 LineSpacing 40~~\
\
~~…………~~\
\
~~Après chaque commande Put, l’expression string contient la partie non affichée du paragraphe. Après chaque commande Put, y contient la coordonnée immédiatement sous la partie du paragraphe affichée. | | --- | --- | ###### GetParagraphInfo Cette commande permet de récupérer des informations sur le paragraphe comme le nombre de lignes du paragraphe ou sa hauteur (en points PCL) ou, si le paragraphe est découpé, les deux parties du paragraphe. | \*\*Syntaxe 1 : paragraphe total\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*GetParagraphInfo\*\* \*\*ResLinesCount\*\* \*\*ResHeight\*\* \[(\*\*Justify\*\* or \*\*AlignLeft\*\* or \*\*AlignRight\*\* or \*\*Center\*\*)]~~\
\
~~\[\*\*Width\*\* ] \[\*\*text\*\* ]~~\
\
~~\[\*\*LineSpacing\*\* ] | | --- | --- | | \*\*Syntaxe 2 : paragraphe “découpé”\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*GetParagraphInfo\*\* \*\*ResBeginning\*\* \*\*ResEnd\*\* \[(\*\*Justify\*\* or \*\*AlignLeft\*\* or \*\*AlignRight\*\* or \*\*Center\*\*)]~~\
\
~~\[\*\*Width\*\* ]~~\
\
~~\[(\*\*MaxLinesCount\*\* or \*\*MaxHeight\*\*) ] \[\*\*text\*\* ]~~\
\
~~\[\*\*LineSpacing\*\* ] | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne permettant de définir la condition.~~\
\
~~expression string représente la chaîne de caractères ou le résultat d’un traitement à ajouter lors de l’impression (cf Chapitre Expression String)~~\
\
~~rlc représente le nombre de lignes résultant du paragraphe.~~\
\
~~rh représente la hauteur résultante du paragraphe.~~\
\
~~rb représente le début du paragraphe si celui-ci est “découpé”.~~\
\
~~re représente la seconde partie du paragraphe si celui-ci est “découpé”.~~\
\
~~cstr représente une contrainte de scission du paragraphe (nombre de lignes maximum du paragraphe exprimé en points si précédé de MaxLinesCount, hauteur maximale du paragraphe exprimée en points PCL si précédé de MaxHeight).~~\
\
~~Justify est le mot-clé utilisé pour justifier (aligner à droite et à gauche) l’expression string c’est à dire que toutes les lignes, sauf la dernière, ont la même longueur.~~\
\
~~AlignLeft est le mot-clé utilisé pour aligner à gauche l’expression string c’est à dire que toutes les lignes démarrent à la même coordonnée X.~~\
\
~~AlignRight est le mot-clé utilisé pour aligner à droite~~\
\
~~l’expression string c’est à dire que toutes les lignes finissent à la même coordonnée X. | | | Center est le mot-clé utilisé pour centrer l’expression string c’est à dire que le milieu de toutes les lignes est placé sur la même coordonnée X.~~\
\
~~Width est la largeur du paragraphe exprimé en points PCL.~~\
\
~~t représente la police à utiliser pour imprimer la ligne.~~\
\
~~ls représente l’espacement entre deux lignes, exprimé en points PCL. | | --- | --- | | \*\*Exemple 1\*\* | \*(icône manquante)\*~~\
\
~~…………~~\
\
~~GetParagraphInfo parag ResLinesCount rlc ResHeight rh Justify Width 537 Text 4 LineSpacing 35~~\
\
~~Put “LinesCount = ” + rlc To 150, 891 Text 1 Put “Height = ” + rh To 150, 978 Text 1~~\
\
~~…………~~\
\
~~Le résultat est affiché ci-dessous :~~\
\
~~LinesCount = 8~~\
\
~~Height = 280 |Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).| \*\*Exemple 2\*\* | S’il y a un découpage :~~\
\
~~…………~~\
\
~~Value pbegin Is Var Value pend Is Var~~\
\
~~…………~~\
\
~~GetParagraphInfo parag ResBeginning pbegin ResEnd pend Justify Width 537 MaxLinesCount~~\
\
~~1. Text 4 LineSpacing 35~~\
\
~~Put “pbegin =” To 147, 1269 Text 1~~\
\
~~Put pbegin To 267, 1363 Justify Width 537~~\
\
~~MaxLinesCount 3 Text 4 LineSpacing 35~~\
\
~~Put “pend =” To 137, 1681 Text 1~~\
\
~~Put pend To 257, 1775 Justify Width 537 Text~~\
\
~~1. LineSpacing 35~~\
\
~~…………~~\
\
~~Le résultat est affiché ci-dessous : | | --- | --- | \*\*Ajout 2 nouveau paramètres optionnels : \[Start sx, sy] \[End ex, ey]\*\* \*\*Syntaxe1\*\* : \[\[]] \*\*GetParagraphInfo\*\* \*\*ResLinesCount\*\* \*\*ResHeight\*\* \[(\*\*Justify\*\* or \*\*AlignLeft\*\* or \*\*AlignRight\*\* or \*\*Center\*\*)] \[\*\*Width\*\* ] \[\*\*Text\*\* ] \[\*\*LineSpacing\*\* ] \[\*\*Start\*\* , ] \[\*\*End\*\* , ] ##### Syntaxe2 : \[\[]] \*\*GetParagraphInfo\*\* \*\*ResBeginning\*\* \*\*ResEnd\*\* \[(\*\*Justify\*\* or \*\*AlignLeft\*\* or \*\*AlignRight\*\* or \*\*Center\*\*)] \[\*\*Width\*\* ] \[\*\*MaxLinesCount\*\* or \*\*MaxHeight\*\*) ]\[\*\*Text\*\* ] \[\*\*LineSpacing\*\* ] \[\*\*Start\*\* , ] \[\*\*End\*\* , ] Ou : …voir le manuel de référence StarPage. xStart, yStart – représente les variables qui vont recevoir les coordonnées de début effectif du l’écriture du paragraphe xEnd, yEnd – représente les variables qui vont recevoir les coordonnées de fin effectif du l’écriture du paragraphe ###### GetParagraphElementsInfo Cette commande permet de recouper des informations sur le paragraphe, constitué de différents éléments, avec différents fonts (formats) d’écriture comme le nombre de lignes du paragraphe ou sa hauteur (en points PCL) ou, si le paragraphe est découpé, les deux parties pour chaque un des éléments du paragraphe. On a donc, comme pour la commande GetParagraphInfo, deux syntaxes pour la même commande. ##### Syntaxe1 : Permet de récupérer la hauteur résultante du paragraphe, pour un paragraphe sans rupture, en nombre de lignes ou en points PCL. ###### Syntaxe : \[] \*\*GetParagraphElementsInfo\*\* (\*\*ResLinesCount\*\* || \*\*ResHeight\*\* ) (\*\*Justify\*\*|\*\*AlignLeft\*\*|\*\*AlignRight\*\*|\*\*Center) Width\*\* \*\*Text\*\* \*\*LineSpacing\*\* \[\*\*Start\*\* , ] \[\*\*End\*\* , ] \[\*\*Element\*\* \[\*\*Texte\*\* ]] … (multiple elements) \*\*EndGetParagraphElementsInfo\*\* \*\*Exemple StarPage\*\* : Set var1 = “Salut je suis Cédric, ” Set var2 = “Salut je suis Laurent, ” GetParagraphElementsInfo ResLinesCount lines ResHeight height Justify Width 1200 Text 1 Linespacing 50 Element var1 Element var2 Element “Ce document est un ” Element “contrat de prestation de service, ” Text 2 Element “contrat par lequel une personne, le ” Element “prestataire” Text 2 Element “, va s’engager auprès d’une autre personne, ” Element “client” Element “, à fournir un service etc…” EndGetParagraphElementsInfo Put “LinesCount = ” + lines To 50, 50 Text 1 Put “Height = ” + height To 50, 100 Text 1 ###### Résultat : LinesCount = 6 Height = 300 ###### Glossaire : - représente une expression booléenne permettant de définir la condition. - < rlc> représente une variable qui doit récupérer le nombre de lignes résultant du paragraphe. - représente une variable qui doit récupérer la hauteur résultante du paragraphe. - \*\*Justify\*\* est le mot clé utilisé pour dire que le paragraphe sera en justifié (aligné à droite et à gauche), c’est-à-dire que toutes les lignes, sauf la dernière, ont la même longueur. La taille de l’espace entre les mots sera ajustée pour toutes les lignes sauf la dernière. - \*\*AlignLeft\*\* est le mot clé utilisé pour aligner à gauche, c’est-à-dire toutes les lignes démarrent à la même coordonnée X, sans ajustement de l’espace entre les mots. - \*\*AlignRight\*\* est le mot clé utilisé pour aligner à droite, c’est-à-dire toutes les lignes finissent à la même coordonnée X, sans ajustement de l’espace entre les mots. - \*\*Center\*\* est le mot clé utilisé pour centrer, c’est-à-dire le milieu de toutes les lignes est placé à la même coordonnée X, sans ajustement de l’espace entre les mots. - est la largeur du paragraphe en points PCL. - , … représente la police à utiliser pour l’ensemble du paragraphe, respectivement pour l’élément du paragraphe. - représente l’espacement entre les lignes, exprimé en points PCL. - … représente l’expression string qui donne la chaine de caractères ou le résultat d’un traitement pour l’élément correspondant du paragraphe. - (, ) représente des variables qui vont contenir les coordonnées du début effectif d’écriture du paragraphe - (, ) – représente des variables qui vont contenir les coordonnées de fin effectif du l’écriture du paragraphe - || – Désigne un OR non exclusive - | – Désigne un OR exclusive - \[] – Paramètres optionnels - Les paramètres en gras sont des mots clé ##### Syntaxe2 : Permet de récupérer, pour chaque élément du paragraphe, les 2 parties résultantes de la scission du paragraphe. Par exemple, si un paragraphe qui contient 10 éléments et a une contrainte de scission de 5 lignes maximum, et disons la scission intervient au niveau du 6eme élément, alors pour les premiers 5 éléments la première partie sera identique à la chaine tandis que la 2eme partie sera la chaine vide ; pour le 6eme élément, la première partie contiendra une partie de la chaine de départ et la 2eme partie le restant de la chaine de départ; et pour les derniers éléments, la première partie sera la chaine vide et la 2eme partie sera identique à la chaine de départ. ###### Syntaxe : \[] \*\*GetParagraphElementsInfo\*\* (\*\*Justify\*\*|\*\*AlignLeft\*\*|\*\*AlignRight\*\*|\*\*Center) Width\*\* (\*\*MaxLinesCount\*\* | \*\*MaxHeight\*\*) \*\*Text\*\* \*\*LineSpacing\*\* \[\*\*Start\*\* , ] \[\*\*End\*\* , ] \[\*\*Element\*\* (\*\*ResBegining\*\* || \*\*ResEnd\*\* ) \[\*\*Texte\*\* ] ] … (multiple elements) ###### EndGetParagraphElementsInfo \*\*Exemple StarPage\*\* : Set var1 = “Salut je suis Cédric, ” Set var2 = “Salut je suis Laurent, ” GetParagraphElementsInfo Justify Width 1200 MaxLinesCount 3 Text 1 Linespacing 50 Element var1 ResBegining start1 ResEnd end1 Element var2 ResBegining start2 ResEnd end2 Element “Ce document est un ” ResBegining start3 ResEnd end3 Element “contrat de prestation de service, ” ResBegining start4 ResEnd end4 Text 2 Element “contrat par lequel une personne, le ” ResBegining start5 ResEnd end5 Element “prestataire” ResBegining start6 ResEnd end6 Text 2 Element “, va s’engager auprès d’une autre personne, ” ResBegining start7 ResEnd end7 Element “client” ResBegining start8 ResEnd end8 Element “, à fournir un service etc…” ResBegining start9 ResEnd end9 EndGetParagraphElementsInfo Put “Start1 = ” + start1 To 50, 50 Text 1 Put “End1 = ” + end1 To 50, 100 Text 1 Put “Start2 = ” + start2 To 50, 150 Text 1 Put “End2 = ” + end2 To 50, 200 Text 1 Put “Start3 = ” + start3 To 50, 250 Text 1 Put “End3 = ” + end3 To 50, 300 Text 1 Put “Start4 = ” + start4 To 50, 350 Text 1 Put “End4 = ” + end4 To 50, 400 Text 1 Put “Start5 = ” + start5 To 50, 450 Text 1 Put “End5 = ” + end5 To 50, 500 Text 1 Put “Start6 = ” + start6 To 50, 550 Text 1 Put “End6 = ” + end6 To 50, 600 Text 1 Put “Start7 = ” + start7 To 50, 650 Text 1 Put “End7 = ” + end7 To 50, 700 Text 1 Put “Start8 = ” + start8 To 50, 750 Text 1 Put “End8 = ” + end8 To 50, 800 Text 1 Put “Start9 = ” + start9 To 50, 850 Text 1 Put “End9 = ” + end9 To 50, 900 Text 1 ###### Résultat : Start1 = Salut je suis Cédric, End1 = Start2 = Salut je suis Laurent, End2 = Start3 = Ce document est un End3 = Start4 = contrat de prestation de service, End4 = Start5 = contrat par End5 = lequel une personne, le Start6 = End6 = prestataire \*\*– page 95 –\*\* Start7 = End7 = , va s’engager auprès d’une autre personne, Start8 = End8 = client Start9 = End9 = , à fournir un service etc…” ###### Glossaire : - représente une expression booléenne permettant de définir la condition. - \*\*Justify\*\* est le mot clé utilisé pour dire que le paragraphe sera en justifié (aligné à droite et à gauche), c’est-à-dire que toutes les lignes, sauf la dernière, ont la même longueur. La taille de l’espace entre les mots sera ajustée pour toutes les lignes sauf la dernière. - \*\*AlignLeft\*\* est le mot clé utilisé pour aligner à gauche, c’est-à-dire toutes les lignes démarrent à la même coordonnée X, sans ajustement de l’espace entre les mots. - \*\*AlignRight\*\* est le mot clé utilisé pour aligner à droite, c’est-à-dire toutes les lignes finissent à la même coordonnée X, sans ajustement de l’espace entre les mots. - \*\*Center\*\* est le mot clé utilisé pour centrer, c’est-à-dire le milieu de toutes les lignes est placé à la même coordonnée X, sans ajustement de l’espace entre les mots. - est une expression string pour exprimer la contrainte de scission que ce soit la hauteur maximum du paragraphe, si est précédé par \*\*MaxHeight\*\*, ou nombre le nombre maximum de lignes du paragraphe, si précédé par \*\*MaxLinesCount\*\*. - est la largeur du paragraphe en points PCL. - , … représente la police à utiliser pour l’ensemble du paragraphe, respectivement pour l’élément du paragraphe. - représente l’espacement entre les lignes, exprimé en points PCL. - … représente l’expression string qui donne la chaine de caractères ou le résultat d’un traitement pour l’élément correspondant du paragraphe. - … représente le début de l’élément du paragraphe correspondant, si celui-ci est “découpé”. - … représente la seconde partie de l’élément du paragraphe correspondant, si celui-ci est “découpé”. - (, ) représente des variables qui vont contenir les coordonnées du début effectif d’écriture du paragraphe - (, ) – représente des variables qui vont contenir les coordonnées de fin effectif du l’écriture du paragraphe - || – Désigne un OR non exclusive - | – Désigne un OR exclusive - \[] – Paramètres optionnels - Les paramètres en gras sont des mots clé ###### Set Cette commande permet d’affecter une valeur à une variable \*\*de type Set\*\*. | \*\*Syntaxe\*\* | \[\*\*\[<\*\*ExpBool>\*\*]\*\*] \*\*Set\*\* \*\*to\*\*~~\
\
~~\[\[indice]] | | --- | --- | | \*\*Paramètres\*\* | ExpBool représente une expression booléenne permettant de définir la condition.~~\
\
~~variable représente le nom de la variable dans laquelle le résultat doit être stocké~~\
\
~~indice est une constante ou une expression | | \*\*Commentaires\*\* | - Cette commande permet d’évaluer l’expression et d’en affecter le résultat dans la variable indiquée.~~\
~~- expression peut être n’importe quelle suite d’opérations se conformant aux syntaxes (cf Chapitre Expression String et Chapitre Expression Booléenne)~~\
~~- La variable doit être préalablement définie par une commande value. | | \*\*Exemple\*\* | …………~~\
\
~~Value Line\_Nr Is Var Value Line\_Start Is Var~~\
\
~~…~~\
\
~~…~~\
\
~~Set “3” to Line\_Start Set Line\_Start to Line\_Nr~~\
\
~~…………~~\
\
~~De plus, la commande Set permet d’affecter une valeur à un élément du tableau si la variable est un identifiant du tableau dont l’indice est entre crochets \[ ].~~\
\
~~Value Exemple Is Array \[1–10]~~\
\
~~Set “toto” to Exemple\[5] | ###### Structure de contrôle Ces structures permettent de contrôler l’exécution répétée d’une séquence d’instructions jusqu’à ce qu’une condition logique soit satisfaite. Il en existe 4 : - For - While - If - Select…Case ###### For Cette commande permet d’exécuter un bloc de programme un nombre prédéterminé de fois. | \*\*Syntaxe\*\* | \*\*FOR\*\* variable \*\*=\*\* \*\*TO\*\* \*\*STEP\*\*~~\
\
~~…~~\
\
~~\*\*ENDFOR\*\* | | --- | --- | | \*\*Paramètres\*\* | variable représente le nom de la variable qui doit être utilisée pour contrôler la boucle FOR~~\
\
~~init représente une valeur ou expression initiale à affecter à la variable~~\
\
~~end représente une valeur ou expression qui définit la fin de l’exécution de cette boucle~~\
\
~~val-step représente une valeur d’incrémentation du pas à appliquer pour chaque For~~\
\
~~ENDFOR est un mot-clef représentant la fin du bloc d’instructions | | \*\*Commentaires\*\* | - Cette commande permet d’effectuer toutes les instructions situées entre For et Endfor tant que la variable indiquée n’est pas égale à la valeur ou à l’expression définie comme end.~~\
~~- La valeur de la variable évoluera conformément à la valeur indiquée derrière le mot-clef STEP. | | \*\*Exemple\*\* | …………~~\
\
~~Value nb\_lig Is Var~~\
\
~~..~~\
\
~~FOR nb\_lig = 29 TO 56 STEP 1~~\
\
~~Put L(nb\_lig):C(2,40) To 30, 1500 %+~~\
\
~~(nb\_lig %- 29) %\* 48 Text 11 Density 10 ENDFOR~~\
\
~~………… | ###### While Cette commande permet d’exécuter un bloc de programme tant que l’expression booléenne sera vraie. | \*\*Syntaxe\*\* | \*\*WHILE\*\*~~\
\
~~…~~\
\
~~ENDWHILE | | --- | --- | | \*\*Paramètres\*\* | expression booléenne représente une expression renvoyant une valeur vraie ou fausse.~~\
\
~~ENDWHILE est un mot-clef représentant la fin du bloc d’instructions | | \*\*Commentaires\*\* | - Cette commande permet d’effectuer toutes les instructions situées entre While et EndWhile tant que~~\
\
~~l’expression booléenne est vraie. | | \*\*Exemple\*\* | …………~~\
\
~~Value Libelle\_banniere Is Zone L2:C1,200 Page 1~~\
\
~~..~~\
\
~~WHILE NOT BLANK(Libelle\_banniere)~~\
\
~~Put Cut( Libelle\_banniere, 80) To 200,~~\
\
~~1580 %+ (Ordonnee %- 1) %\* 90 Text 7 Set Ordonnee %+ 1 to Ordonnee~~\
\
~~ENDWHILE~~\
\
~~………… | ###### If Cette commande permet d’exécuter un groupe d’instructions de manière conditionnelle. | \*\*Syntaxe\*\* | \*\*IF\*\*~~\
\
~~…~~\
\
~~\*\*ELSE\*\*~~\
\
~~…~~\
\
~~\*\*ENDIF\*\* | | --- | --- | | \*\*Paramètres\*\* | expression booléenne représente une expression dont l’évaluation doit envoyer une valeur vraie afin que les commandes suivantes soient évaluées.~~\
\
~~ENDIF est un mot-clef représentant la fin du bloc~~\
\
~~d’instructions | | \*\*Commentaires\*\* | - Si la condition indiquée dans le IF est vérifiée, les instructions qui suivent sont exécutées.~~\
~~- En cas de présence d’un ELSE associé, les instructions suivant le ELSE seront exécutées si l’expression n’est pas vérifiée. | | \*\*Exemple\*\* | …………~~\
\
~~Condition Der\_Page is L23:C72,73 =L23:C76,77~~\
\
~~..~~\
\
~~IF Der\_Page~~\
\
~~Call Overlay 2~~\
\
~~Copy L63,63:C56,68 To 230, 3300 Text 10~~\
\
~~Density 10~~\
\
~~Put Format( L64:C34,38, “#0,0”) To 730,~~\
\
~~3300 Text 10 Density 10~~\
\
~~Copy L64,64:C56,68 To 960, 3300 Text 10~~\
\
~~Density 10~~\
\
~~Copy L65,65:C56,68 To 1440, 3300 Text~~\
\
~~11 Density 10~~\
\
~~Put L65:C56,68 %/ EURO To 2050, 3300~~\
\
~~Text 11 Density 10~~\
\
~~ELSE~~\
\
~~Call Overlay 3~~\
\
~~Put REPORT To 1760, 3250 Text 11~~\
\
~~Density 10 ENDIF~~\
\
~~………… | ###### Select…Case Cette commande permet d’exécuter un groupe d’instructions de manière conditionnelle. | \*\*Syntaxe\*\* | \*\*SELECT CASE\*\*~~\
\
~~\*\*CASE\*\* :~~\
\
~~…~~\
\
~~\*\*CASE\*\* ; :~~\
\
~~…~~\
\
~~\*\*CASE ELSE\*\*~~\
\
~~…~~\
\
~~\*\*ENDSELECT\*\* | | --- | --- | | \*\*Paramètres\*\* | Expression string représente une expression devant être comparée aux différents cas envisagés.~~\
\
~~val1, val2, val3 représente des valeurs qui devront être comparées à expression string.~~\
\
~~ELSE est un mot-clef demandant l’exécution d’instruction précises si aucune correspondance n’a été trouvée.~~\
\
~~ENDCASE est un mot-clef représentant la fin du bloc d’instructions | | \*\*Commentaires\*\* | - Cette instruction permet, pour une information donnée et définie par expression string, de définir l’exécution que l’on veut voir appliquer selon son contenu. expression string est une expression de type chaîne de caractères (cf Chapitre Expression String).~~\
~~- Si aucune adéquation n’est trouvée, il est possible de demander l’application d’une instruction différente (ou un bloc d’instructions) par l’utilisation d’un CASE ELSE. | | \*\*Exemple\*\* | …………~~\
\
~~Value SOCIETE Is Zone L1:C1,6~~\
\
~~..~~\
\
~~SELECT CASE SOCIETE CASE “CENTAU”:~~\
\
~~Put “!” To 1920, 382 Text 18~~\
\
~~Put “CENTAURE” To 1780, 480 Text 15 CASE “AKWABA”:~~\
\
~~Put “!” To 1920, 292 Text 6~~\
\
~~Put “AKWABA” To 1830, 480 Text 15 CASE ELSE~~\
\
~~ENDSELECT~~\
\
~~………… | ## MACROSCapture d’écran manquante (image supprimée de la documentation source d’origine).\*\*STARPAGE /MANUEL DE REFERENCE\*\* ### MACROS L’objectif d’une macro est de regrouper un certain nombre de commandes pour en faciliter l’appel. Dans StarPage, il y a 2 types de macros : - Les \*\*Macros non imprimables (non printable)\*\* composées des instructions d’affectation suivantes communes à tous les types de macros StarPage : Call Macro\*\*,\*\* Set, ExitBlock, FindNext, For, While, If, Select Case. - Les \*\*Macros imprimables (printable)\*\* sont composées, outre les instructions d’affectation, des instructions générant un affichage : Copy, Move, Erase, Put, BAR\_PDF417, Call Overlay, Call Macro, Set, ExitBlock, FindNext, For, While, If, Select Case | \*\*Syntaxe\*\* | \*\*Macro\*\* \[Printable]~~\
\
~~\[]~~\
\
~~…~~\
\
~~\[\*\*when\*\* ]~~\
\
~~… | | --- | --- | | \*\*Paramètres\*\* | Nom\_Macro représente le nom définissant la macro Instruction1 et instruction2 représentent les commandes constituant la macro.~~\
\
~~ExpBool représente une expression booléenne définissant la condition | | \*\*Commentaires\*\* | - Une macro appelée doit précédemment être définie.~~\
~~- Les macros non imprimables présentent la possibilité de faire appel à d’autres macros du même type.~~\
~~- Les macros imprimables présentent la possibilité de faire appel à toutes les macros, quel que soit leur type. | | \*\*Exemple\*\* | …………~~\
\
~~Macro Calcul\_Euro Set 6.56 to Taux Euro~~\
\
~~..~~\
\
~~Macro imprime\_Adresse Printable Put FieldAdresse1 to 100, 200~~\
\
~~Put FieldAdresse2 to 100, 250~~\
\
~~..~~\
\
~~..~~\
\
~~..~~\
\
~~Call Calcul\_Euro~~\
\
~~………… |Capture d’écran manquante (image supprimée de la documentation source d’origine).## LAYOUT ### LAYOUT Cette commande permet de définir une nouveau layout de type Page (cf § Layout type Page) | \*\*Syntaxe\*\* | \*\*Layout\*\* \[\*\*with\*\* \[\*\*RESTORE\*\*]~~\
\
~~\*\*INCREASE\*\*\\|\*\*DECREASE\*\* \[\*\*step\*\* ]]~~\
\
~~\[\*\*when\*\* ] | | --- | --- | | \*\*Paramètres\*\* | Layout est le mot-clé permettant de définir la page~~\
\
~~nom est le nom affecté à ce layout~~\
\
~~Id est le nom de variable utilisée pour la boucle~~\
\
~~borne représente une borne inférieure (si en décrément) ou supérieure (si en incrément) à atteindre~~\
\
~~pas représente la valeur de l’incrément ou du décrément de~~\
\
~~Id~~\
\
~~ExpBool représente une expression booléenne définissant la condition | | \*\*Commentaires\*\* | - La commande Layout donne à l’utilisateur la possibilité d’affecter un nom à un nouveau layout de type page. Le mot-clé Layout doit impérativement être suivi par un nom unique. Seule une autre commande Layout, Overlay, Compute ou la fin du fichier met fin au layout dont la description commence par cette commande.~~\
~~- Il est possible de conditionner un layout en utilisant une expression booléenne.~~\
~~- Il est également possible de demander une exécution répétée de ce layout, notamment, pour permettre l’édition d’étiquettes. Ainsi, après chaque exécution du layout, la valeur Step sera ajoutée (présence du mot clef Increase)ou soustraite (présence du mot clef Decrease) à la variable set et ce, jusqu’à ce que la valeur indiquée comme borne soit atteinte. La valeur Step affecte donc le nombre d’itérations.~~\
~~- Le mot clef Restore demande à ce que la valeur initiale de la variable soit initialisée après traitement de ce layout. Pendant l’exécution de ce layout, la variable StepNumber est disponible pour déterminer quel est le numéro de l’exécution en cours. Si la valeur borne est~~\
\
~~égale à 0, le layout n’est pas exécuté. Si le Step n’est pas indiqué, sa valeur par défaut est de 1. | | \*\*Exemple\*\* | …………~~\
\
~~Value LoopVar Is Var “0”~~\
\
~~..~~\
\
~~Layout My\_Layout With LoopVar RESTORE INCREASE “2”~~\
\
~~..~~\
\
~~..~~\
\
~~..~~\
\
~~…………~~\
\
~~…………~~\
\
~~Layout BANNIERE When SourcePageNumber %= 1~~\
\
~~..~~\
\
~~..~~\
\
~~..~~\
\
~~………… | | --- | --- |Capture d’écran manquante (image supprimée de la documentation source d’origine).## OVERLAYCapture d’écran manquante (image supprimée de la documentation source d’origine).\*\*STARPAGE /MANUEL DE REFERENCE\*\* ### OVERLAY Cette commande permet, conditionnellement ou non, d’exploiter une page de données sans en demander l’affichage immédiat. L’ensemble des instructions sera stocké par l’imprimante et pourra être appelé par la commande Call Overlay à l’aide du numéro utilisé dans la définition. (cf § Layout type Overlay). | \*\*Syntaxe\*\* | \*\*Overlay\*\* \[\*\*when\*\* ] | | --- | --- | | \*\*Paramètres\*\* | num représente le numéro de l’overlay généré~~\
\
~~ExpBool représente une expression booléenne définissant la condition | | \*\*Commentaires\*\* | - Au sein d’une telle structure, l’utilisation de la commande Use-Overlay est interdite. | | \*\*Exemple\*\* | …………~~\
\
~~# Définition des conditions~~\
\
~~Condition cas1 is L2:C3, 9 = “FACTURE”~~\
\
~~..~~\
\
~~# Définition d’un Overlay Overlay 25 when cas1 Portrait A4~~\
\
~~Move L1,5 : C10,100 to 100 300 text 2~~\
\
~~..~~\
\
~~# Définition d’un Layout Layout FACT when TRUE Use overlay 1~~\
\
~~Call overlay 25~~\
\
~~Move L6,60 : C1,132 to 100 800 text 3~~\
\
~~…………~~\
\
~~Si la zone commençant en ligne 2, colonne 3 contient la chaîne de caractères “FACTURE”, le layout type Overlay~~\
\
~~25 est créé. Il est orienté en portrait et contient les informations contenues ligne 1 à 5, de la colonne 10 à la colonne 100. Dans tous les cas (c’est à dire pour toutes les pages de données), le Layout FACT sera appliqué. | ## COMPUTE ### COMPUTE Cette commande permet de déclencher un traitement sur les variables sans envoyer d’information vers l’imprimante (cf § Layout type Compute). | \*\*Syntaxe\*\* | \*\*compute\*\* \[\*\*with\*\* \[\*\*RESTORE\*\*]~~\
\
~~\*\*INCREASE\*\*\\|\*\*DECREASE\*\* \[\*\*step\*\* ]]~~\
\
~~\[\*\*when\*\* ExpBool>] | | --- | --- | | \*\*Paramètres\*\* | nom représente le nom affecté au layout de type compute~~\
\
~~ExpBool représente une expression booléenne définissant la condition | | \*\*Commentaires\*\* | - Il est également possible de demander une exécution répétée de ce compute. Ainsi, après chaque exécution du layout, la valeur Step sera ajoutée (présence du mot clef Increase) ou soustraite (présence du mot clef Decrease) à la variable set et ce, jusqu’à ce que la valeur indiquée comme borne soit atteinte. La valeur Step affecte donc le nombre d’itérations.~~\
~~- Le mot clef Restore demande à ce que la valeur initiale de la variable soit initialisée après traitement de ce layout. Pendant l’exécution de ce layout, la variable StepNumber est disponible pour déterminer quel est le numéro de l’exécution en cours. Si la valeur borne est égale à 0, le layout n’est pas exécuté. Si le Step n’est pas indiqué, sa valeur par défaut est de 1.~~\
~~- Toutes les “commandes d’impression” sont refusées et génèrent une erreur de syntaxe. Dans un tel layout, il n’est possible d’utiliser que les commandes Set, Call~~\
\
~~macro, Break et Breakspool. | | \*\*Exemple\*\* | …………~~\
\
~~# Définition de la variable chaîne Value info is VAR~~\
\
~~# Définition des conditions~~\
\
~~Condition cas1 is L2:C3, 9 = “FACTURE”~~\
\
~~# Définition d’une structure Compute Compute c\_cas1 when cas1 #Affectation d’une valeur à info Set L2:C10,18 to info~~\
\
~~# Définition d’un Layout Layout FACT when TRUE Use overlay 1~~\
\
~~# Impression du contenu de la variable info Put info to 50 800 text 1~~\
\
~~Move L6,60 : C1,132 to 100 800 text 3~~\
\
~~…………~~\
\
~~Si la zone commençant en ligne 2, colonne 3 contient la chaîne de caractères “FACTURE”, le traitement \*\*compute\*\* est effectué. Ce traitement affecte à la variable info la chaîne de caractères contenue dans la page de donnée (ligne 2 colonne 10 à 18). A l’issue de ce traitement de type compute, la page de données n’est pas considérée comme traitée. Elle reste donc disponible pour~~\
\
~~l’exécution d’un Layout ultérieur. | | --- | --- | ## EXPRESSION STRING ### EXPRESSION STRING ###### Définition L’expression String \*\*manipule la donnée de base, la chaîne de caractères\*\*. Celle-ci recouvre différentes possibilités. Ce peut être : ☼ des données provenant de la page en cours de traitement sous forme d’ExpLC ☼ une chaîne de caractères devant apparaître sur l’état final ☼ une chaîne de caractères résultant de l’exécution d’une fonction ☼ une concaténation de chaînes de caractères ☼ une des variables prédéfinies ou créées dans StarPage ☼ le contenu d’une variable d’environnement (↔ variable globale au système) peut être également exploité et celles-ci peuvent également être concaténées. ☼ enfin, la combinaison de toutes ces possibilités. ###### Opérateurs Les expressions String manipulent deux types d’opérateurs : 1- Les Opérateurs de calcul sur valeurs numériques 2- Opérateur de calcul sur chaîne de caractères ###### Opérateurs de calcul sur valeurs numériques Les opérateurs de calcul sur valeurs numériques reconnus et supportés dans StarPage sont : | %+ | Addition | | --- | --- | | %- | Soustraction | | %\* | Multiplication | | %/ | Division | | %mod | Modulo | | %div | Division entière | | %%mod | Modulo pour très~~\
\
~~grand nombre (>=2 147 483 648) | | %%div | Division entière pour | | très grand nombre | | | (>=2 147 483 648) | | ###### Opérateur de calcul sur chaîne de caractères Le seul opérateur de calcul est l’opérateur de concaténation entre chaînes de caractères : | + | Concaténation | | --- | --- |Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Syntaxe d’utilisation d’une variable d’environnement Pour être utilisée dans une expression, une variable d’environnement doit être précédée d’un point d’exclamation !. ☼ \*Exemple\* : # Affichage en majuscules du nom de l’utilisateur courant de l’ordinateur Put toupper(!username) to 480, 470 Text1 ## EXPRESSION BOOLEENNE ### EXPRESSION BOOLEENNE ###### Définition Une expression booléenne est une suite d’opérateurs et d’opérandes (variables et constantes) renvoyant une valeur \*\*vraie\*\* ou \*\*fausse\*\*. ###### Opérateurs Les expressions booléennes manipulent trois types d’opérateurs : 1- Opérateurs booléens, - Opérateurs de comparaison sur valeurs numériques, 3- Opérateurs de comparaison sur chaînes de caractères. ###### Opérateurs booléens Un opérateur booléen est un symbole permettant une opération logique ou mathématique sur des données. Les opérateurs booléens reconnus et supportés dans StarPage sont : ###### AND OR NOT ###### Opérateurs de comparaison sur valeurs numériques Les opérateurs de comparaison sur valeurs numériques reconnus et supportés dans StarPage sont : | %= | Egalité | | --- | --- | | %< | Inférieur | | %<= | Inférieur ou égal | | %> | Supérieur | | %>= | Supérieur ou égal | | %<> | Différent de | ###### Opérateurs de comparaison sur chaînes de caractères | = | Egalité | | --- | --- | | < | Inférieur | | <= | Inférieur ou égal | | > | Supérieur | | >= | Supérieur ou égal | | <> | Différent de | ###### Fonctions booléennes Elles sont au nombre de 3 : 1- Blank - In - True ###### Blank ###### In ###### True Cette fonction permet de renvoyer une valeur vraie si la chaîne de caractères est vide ou composée uniquement d’espaces sur une longueur len. | \*\*Syntaxe\*\* | blank () | | --- | --- | Cette fonction permet de renvoyer une valeur vraie si la chaîne de caractères expression string 1 est contenue dans la chaîne expression string 2 | \*\*Syntaxe\*\* | in () | | --- | --- | Cette constante définit la valeur vraie. ###### Conditions prédéfinies Une condition peut être assimilée à une expression booléenne incluse dans une variable. Il existe 4 conditions prédéfinies (cf § Condition) : 1- ENDOFFILE - FILLER - GED - VIEW ###### ENDOFFILE Cette condition retourne VRAI si le fichier de données est en fin de lecture ###### FILLER Cette condition retourne VRAI si l’environnement est StarFiller ###### GED Cette condition retourne VRAI si l’environnement est StarSafe ###### VIEW Cette condition retourne VRAI si l’environnement est StarView ###### Construction d’une expression booléenne \*\*Schéma de construction\*\* Une Expression Booléenne peut être : - Une expression Booléenne simple : ExpBool - Une expression booléenne composée : ExpBool OpBool ExpBool ou ExpLC OpNum ou ExpLC OpNum ExpLC - OpBool représente un opérateur booléen - OpNum représente un opérateur de comparaison sur valeurs numériques - ExpLC représente une Expression Ligne-Colonne \*\*Exemple\*\*Capture d’écran manquante (image supprimée de la documentation source d’origine). L’expression booléenne composée ci-dessus correspond à : (L2:C20,25 %<= 70 000) AND (L1:C12,15 %= L10:C72,75) Dans cet exemple, le contenu de la zone L2:C20,25 est comparé avec la valeur 70 000 (valeur vraie ou fausse). Ensuite, le contenu de la zone L1:C12,15 est comparé avec le contenu de la zone L10:C72,75 (valeur vraie ou fausse). Enfin, une opération booléenne AND sera réalisée entre ces deux dernières comparaisons. ## CODES A BARRES ### CODES A BARRES ###### EAN 13 | \*\*Nom\*\* | EAN 13 | | --- | --- | | \*\*Type de données codées\*\*~~\
\
~~\*\*Conditions sur les données\*\* | Numérique : 13 chiffres (0…9)~~\
\
~~Le premier chiffre est appelée “code pays”. | | \*\*Propriétés\*\* | Longueur fixe, bidirectionnel | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | Fonctions :~~\
\
~~- BAR\_EAN13(DATA \[ , start, middle, end, first1, first2, first3 ])~~\
~~- BAR\_EAN13HR(DATA \[ , start, middle, end, first1, first2, first3 ])~~\
\
~~Paramètres :~~\
\
~~- DATA : Toute expression string supportée par StarPage et répondant aux exigences du code à barres EAN13 .~~\
~~- Start, Middle, End, First1, First2, First3 : voir le paragraphe “Remarques avancées”.~~\
\
~~Remarques :~~\
\
~~Différences entre la fonction standard et la version “HR”: le code pays est ajouté sous une forme “lisible”. | | \*\*Polices requises\*\* | BAR\_EAN13 : police ean13.sfp police EA040rrp.sfp~~\
\
~~police Ean8-13\_20mm.sfp police Ean8-13rrp\_20mm.sfp~~\
\
~~BAR\_EAN13HR : police EAN13hr.sfp | | \*\*Exemple d’utilisation\*\* | Ean13~~\
\
~~Dans le fichier sjp :~~\
\
~~/Char 3 ean13.sfp~~\
\
~~Dans le fichier sp :~~\
\
~~Put Bar\_EAN13(“0051111428177”) To 363,~~\
\
~~303 Text 3~~\
\
~~Ean13Hr~~\
\
~~Dans le fichier sjp :~~\
\
~~/Char 5 EAN13hr.sfp~~\
\
~~Dans le fichier sp :~~\
\
~~Put Bar\_Ean13Hr(“0051111428177”) To 363,~~\
\
~~711 Text 5 | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas. | | --- | --- | | \*\*Remarques avancées\*\* | Le code à barres EAN13 est un codage de 13 chiffres, chaque chiffre étant représenté par un symbole (barre(s) et espace(s)) d’un jeu de nombres donné.~~\
\
~~L’EAN13 comprend 3 jeux de nombres (A, B et C) correspondant aux paramètres first1, first2 et first3. De plus, il y a 3 motifs ajoutés au symbole final : caractère de début (start), caractère de contrôle au milieu (middle) et caractère de fin (end). Les 6 premiers chiffres sont codés dans les jeux de nombres A ou B alors que les 6 derniers chiffres sont codés dans le jeu de nombres C.~~\
\
~~Le 13~~<sup>~~ème~~</sup>\~\~ chiffre, le code pays, est déduit d’après le masque des 6 premiers chiffres. | Code Pays lisibleCapture d’écran manquante (image supprimée de la documentation source d’origine).6 premiers caractères 6 derniers caractères First 1 First 2 First 3 ###### Exemple d’un Code à barres EAN13Hr ###### CODE 39 | \*\*Nom\*\* | Code 39 | | --- | --- | | \*\*Type de données codées\*\* | Alpha-Numérique, \*(A-Z, 0-9, espace, $%+-./)\* | | \*\*Propriétés\*\* | bidirectionnel, discret\~\~<sup>~~(1~~</sup>~~), longueur variable | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | \*\*Fonctions :\*\*~~\
\
~~\*\*– BAR\_3of9\*\*(DATA)~~\
\
~~\*\*Paramètres :\*\*~~\
\
~~DATA : chaîne à coder. | | \*\*Polices requises\*\* | BAR\_3of9 : police \*\*B3906rrp.sfp\*\*~~\
\
~~police \*\*B3908rrp.sfp\*\* police \*\*B3912rrp.sfp\*\* police \*\*B3915rrp.sfp\*\* police \*\*B3929rrp.sfp\*\* police \*\*B3930rrp.sfp\*\* police \*\*B3931rrp.sfp\*\* | | \*\*Exemple d’utilisation\*\* | Dans le fichier sjp :~~\
\
~~/Char 3 B3906rrp.sfp~~\
\
~~Dans le fichier sp :~~\
\
~~Put Bar\_3of9(“396011720561697563257”) To~~\
\
~~363, 303 Text 3 | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | | \*\*Remarques avancées\*\* | Chaque code barre est constitué d’un nombre quelconque de caractères, appelés digits. Chaque digit est représenté par un total de 5 barres (noires) et 4 espaces (blancs). Chacun de ces neuf éléments est appelé un module. Un digit est toujours représenté par 6 modules étroits et 3 modules larges, d’où le nom du code (3 sur 9). Chaque digit est séparé du suivant par un espace étroit.~~\
\
~~Le code 39 peut ainsi représenter 44 caractères, les chiffres, les lettres majuscules et les symboles suivants (\*\*$ % + – . /\*\* ). Un code 39 débute toujours par le caractère astérisque (automatiquement généré par StarPage) et finit de la même manière, ce caractère particulier est appelé caractère d’arrêt et ne doit pas être utilisé ailleurs qu’au début et à la fin du code. L’utilisation du caractère de contrôle (C) est~~\
\
~~facultative. | (1) Un code à barres est dit discret lorsque les espaces entre deux caractères ne font pas partie du code.Capture d’écran manquante (image supprimée de la documentation source d’origine).\*\*Code 39 Human readable\*\* \*\*Code 39 “normal”\*\* ###### Exemple d’un Code à barres “Code 39” encodant 6 caractères alpha numériques ###### CODE 128 | \*\*Nom\*\* | Code 128 | | --- | --- | | \*\*Type de données codées\*\* | Alphanumérique : la table ASCII (c’est à dire 128 caractères) | | \*\*Propriétés\*\* | Longueur variable, Auto contrôlé, continu~~<sup>~~(1)~~</sup>~~, bidirectionnel | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | \*\*Fonctions :\*\*~~\
\
~~\*\*– BAR\_CODE128\*\*(DATA \[offset, EndCode1, EndCode2])~~\
\
~~\*\*Paramètres :\*\*~~\
\
~~- DATA : chaîne à coder.~~\
~~- offset, EndCode1, EndCode2 : voir le paragraphe “Remarques avancées”. | | \*\*Polices requises\*\* | BAR\_CODE128 : police \*\*B128\_46.sfp\*\*~~\
\
~~police \*\*B128\_66.sfp\*\* police \*\*B1282rp.sfp\*\* police \*\*B1286rp.sfp\*\* police \*\*B12811rp.sfp\*\* police \*\*B12816rp.sfp\*\* police \*\*BA128RXP50.sfp\*\* police \*\*BA128RXP75.sfp\*\* police \*\*BA12RXP\_25.sfp\*\*~~\
\
~~police \*\*BA128RZP.sfp\*\* | | \*\*Exemple d’utilisation\*\* | Dans le fichier sjp :~~\
\
~~/Char 3 B128\_46.sfp~~\
\
~~Dans le fichier sp :~~\
\
~~Put Bar\_CODE128(“3960117205”) To 363, 303~~\
\
~~Text 3 | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | | \*\*Remarques avancées\*\* | Le code 128 est un codage de la table ASCII. Il y a 3 motifs ajoutés au symbole final :~~\
\
~~- Le caractère de début (start) est modulé par un paramètre de décalage (offset) dont la valeur par défaut dans StarPage est 32. Cependant, cette valeur est paramétrable car elle peut varier selon les polices utilisées.~~\
~~- Le caractère de contrôle (C) généré par StarPage~~\
~~- Le caractère de fin (EndCode1)ainsi qu’un second caractère si nécessaire. | | \*\*Remarques avancées\*\* | Le code 128 comprend 3 jeux de caractères et la sélection d’un de ceux-ci dépend du caractère de début. De plus, des caractères auxiliaires permettent, en cours de symbole, de passer d’un jeu à un autre. Notamment pour les données purement numériques, le jeu C permet d’utiliser le code 128 en double densité. Chaque caractère est composé de 3 barres et 3 espaces (4 et 3 pour le caractère de début/Fin). Les barres~~\
\
~~représentent toujours un nombre pair de modules et les espaces un nombre impair. | | --- | --- |Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Exemple d’un Code à barres Code 128 (1) Un code à barres est dit continu lorsque les espaces entre deux caractères font partie du code. ###### CODE 128 (via Tbarcode) | \*\*Nom\*\* | Code 128 | | --- | --- | | \*\*Type de données codées\*\* | Alphanumérique : la table ASCII (c’est à dire 128 caractères) | | \*\*Propriétés\*\* | Longueur variable, Auto contrôlé, continu~~<sup>~~(1)~~</sup>~~, bidirectionnel | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | \*\*Fonctions :\*\* | | \*\*extern\_Func(“Code128;A;1600,140;0;2;” +\*\*~~\
\
~~\*\*VAR128, “sjgraph.dll”, “sjg\_barcode”) to graphname\*\*~~\
\
~~Le code128 comprend 3 “jeux de caractères” A, B ou C, qui sera précisée juste après le type de code.~~\
\
~~Le paramètre suivant est la taille (rectangle) du code à générer en 10eme de millimètre (\*largeur,hauteur\*).~~\
\
~~Le troisième paramètre représente l’orientation: \*0, 90, 180 ou 270\*~~\
\
~~Le dernier paramètre « 2 » signifie que l’on génère un fichier tif (qui sera inséré ensuite par un /Picture). | | | | | | \*\*Remarques avancées\*\* | Le code 128 est un codage de la table ASCII. Il y a 3 motifs ajoutés au symbole final :~~\
\
~~- Le caractère de début (start) est modulé par un paramètre de décalage (offset) dont la valeur par défaut dans StarPage est 32. Cependant, cette valeur est paramétrable car elle peut varier selon les polices utilisées.~~\
~~- Le caractère de contrôle (C) généré par StarPage~~\
~~- Le caractère de fin (EndCode1)ainsi qu’un second caractère si nécessaire. | | | | | \*\*Remarques avancées\*\* | Le code 128 comprend 3 jeux de caractères et la sélection d’un de ceux-ci dépend du caractère de début. De plus, des caractères auxiliaires permettent, en cours de symbole, de passer d’un jeu à un autre. Notamment pour les données purement numériques, le jeu C permet d’utiliser le code 128 en double densité. Chaque caractère est composé de 3 barres et 3 espaces (4 et 3 pour le caractère de début/Fin). Les barres~~\
\
~~représentent toujours un nombre pair de modules et les espaces un nombre impair. | \*\*Set Extern\_Func(“Code128;A;100,30;0;2;” + Data, “sjgraph.dll”, “sjg\_barcode”) to graphname\*\* “Code128; A; 100,25; 0; 2; Data” or “Code128; A; 100,25; 0; 2;” + VarData 1 2 3 4 5 - The A corresponds to the subset: - A (Code Set A) – ASCII characters 00 to 95 (0–9, A–Z and control codes), special characters, and FNC 1–4 - B (Code Set B) – ASCII characters 32 to 127 (0–9, A–Z, a–z), special characters, and FNC 1–4 - C (Code Set C) – 00–99 (encodes two digits with a single code point) and FNC1 - Width / Height definition 3- Rotation 0, 90, 180, 270 - Output type 1-> PCL //utilisation classique pour impression ou PDF 2-> TIF //image pour conversion DOC - String to encode or variable (+ VarData) Suppression des fichiers temporaires correspondant au code \*\*Set Extern\_Func(“Code128;” + graphname, “sjgraph.dll”, “sjg\_release”) to ret\*\*Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Exemple d’un Code à barres Code 128 ###### EAN 128 | \*\*Nom\*\* | EAN 128 | | --- | --- | | \*\*Type de données codées\*\* | Alphanumérique : la table ASCII (c’est à dire 128 caractères). | | \*\*Propriétés\*\* | Longueur variable, Auto contrôlé, continu~~<sup>~~(1)~~</sup>~~, bidirectionnel | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | \*\*Fonctions :\*\*~~\
\
~~\*\*– BAR\_Ean128\*\*(DATA \[offset, EndCode1, EndCode2])~~\
\
~~\*\*Paramètres :\*\*~~\
\
~~- DATA : chaîne à coder.~~\
~~- offset, EndCode1, EndCode2 : voir le Code 128 | | \*\*Polices requises\*\* | BAR\_Ean128 : police \*\*B12811rp.sfp\*\*~~\
\
~~police \*\*B12815rp.sfp\*\* police \*\*B12816rp.sfp\*\* police \*\*B12824rp.sfp\*\* police \*\*BA128rxp.sfp\*\* police \*\*BA128rzp.sfp\*\* | | \*\*Exemple d’utilisation\*\* | Dans le fichier sjp :~~\
\
~~/Char 3 B12811rp.sfp~~\
\
~~Dans le fichier sp :~~\
\
~~Put Bar\_Ean128(“3960117205”) To 363, 303~~\
\
~~Text 3 | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | | \*\*Remarques avancées\*\* | Il a les mêmes propriétés que le Code 128.~~\
\
~~De plus, l’Ean 128 comprend un caractère fonction (F1) permettant de reconnaître les applications standardisées EAN d’éventuelles utilisations particulières du code 128. L’identifiant de données (AI) définit la nature et parfois la longueur et structure des données qui suivent. Les AI sont utilisés pour~~\
\
~~coder l’identification des produits. Ces paramètres sont automatiquement générés par StarPage. | ~~<sup>~~(1)~~</sup>\~\~ Un code à barres est dit continu lorsque les espaces entre deux caractères font partie du code. | D | F1 | AI | Donnée | (F1) | AI | Donnée | C | F | | --- | --- | --- | --- | --- | --- | --- | --- | --- | ###### Structure générale d’un Code à barres EAN 128 \*\*D,\*\* le caractère de début est défini par des jeux de caractères A, B et C \*\*F1\*\*, la caractère Fonction \*\*AI\*\*, l’identifiant de données \*\*F1 :\*\* Placé eu milieu, il joue le rôle de séparateur de champ pour les données à longueur variable \*\*C\*\*, la clé de contrôle \*\*F\*\*, le caractère de Fin. \*\*AI entre parenthèses pour faciliter la saisie\*\*Capture d’écran manquante (image supprimée de la documentation source d’origine).\*\*AI et données\*\* \*\*Start\*\* \*\*AI et données\*\* \*\*Stop\*\* \*\*“Human Readable”\*\* \*\*Caractère de contrôle\*\* ###### Exemple d’un Code à barres EAN 128 ###### Code 2 parmi 5 | \*\*Nom\*\* | Code 2 parmi 5 | | --- | --- | | \*\*Type de données codées\*\* | Numérique (0-9) | | \*\*Propriétés\*\* | longueur variable, bidirectionnel | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | \*\*Fonctions :\*\*~~\
\
~~– \*\*BAR\_2of5\*\*(DATA)~~\
\
~~\*\*– BAR\_2of5p\*\*(DATA,weight,start,end)~~\
\
~~\*\*Paramètres :\*\*~~\
\
~~- DATA : chaîne à coder.~~\
~~- offset, EndCode1, EndCode2 : voir le Chapitre “Remarques avancées” | | \*\*Polices requises\*\* | BAR\_2of5p : police \*\*25int\_16.sfp\*\*~~\
\
~~police \*\*25int\_18.sfp\*\* police \*\*25int\_20.sfp\*\* police \*\*25int\_22.sfp\*\* police \*\*25intX18.sfp\*\* police \*\*B2510rrp.sfp\*\* police \*\*B2530rrp.sfp\*\* | | \*\*Exemple d’utilisation\*\* | Dans le fichier sjp :~~\
\
~~/Char 3 25int\_16.sfp~~\
\
~~Dans le fichier sp :~~\
\
~~Put Bar\_2of5p(“39601172056169756325”,40,’#’,~~\
\
~~‘$’) To 363, 303 Text 3 | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | | \*\*Remarques avancées\*\* | Le codage de chaque caractère comprend 2 modules larges sur 5 d’ou le nom Code 2 parmi 5.~~\
\
~~- Le caractère de début (start) peut être un nombre ou un caractère. Sa valeur par défaut est “(” mais, peut être différente pour certaines polices d’ou son caractère paramétrable.~~\
~~- Le caractère de fin (end) peut être un nombre ou un caractère. Sa valeur par défaut est “)” mais, peut être différente pour certaines polices d’ou son caractère paramétrable.~~\
~~- Les données peuvent être modulés par un paramètre de décalage (weight) dont la valeur par défaut dans~~\
\
~~StarPage est 129. Cette valeur est paramétrable car elle peut varier selon les polices. | ###### PDF417 | \*\*Nom\*\* | PDF417 | | --- | --- | | \*\*Type de données codées\*\* | les tables ASCII et ISO | | \*\*Propriétés\*\* | Bidimensionnel, encode plus de1100 bytes, 1800 caractères ASCII ou 2700 caractères numériques | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | Cf § Les instructions et commandes de contrôle / Bar\_PDF147 | | \*\*Polices requises\*\* | police \*\*pdfw3.417\*\* | | \*\*Exemple d’utilisation\*\* | Dans le fichier sjp :~~\
\
~~/Char 6 pdfw3.417~~\
\
~~Dans le fichier sp :~~\
\
~~Bar\_PDF417 (“APPIC”) To 472, 693 Text 6~~\
\
~~UnitHeight 24 UnitWidth 3 | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | | \*\*Remarques avancées\*\* | \*\*PDF\*\* signifie \*\*P\*\*ortable \*\*D\*\*ata \*\*F\*\*ile (=fichier de données portable).~~\
\
~~Chaque symbole PDF417 est constitué d’un ensemble de lignes (de 3 à 90) et chaque ligne contient un motif de début (\*\*start pattern),\*\* un indicateur gauche de ligne, un indicateur droit de ligne, un motif de fin \*\*(stop pattern\*\*), et de 1 à 30 mots-code (ou symboles de données).~~\
\
~~Un mot-code consiste en 4 barres et 4 espaces mesurant 17 modules.~~\
\
~~Le nombre de lignes est variable ainsi que leur hauteur. Le ratio hauteur/largeur d’un symbole PDF417 peut être modifié, notamment pour les besoins de l’impression. Cependant, le nombre de mots-code doit être le même dans toutes les lignes d’un symbole PDF417 donné.~~\
\
~~De plus, chaque symbole PDF417 contient au moins 2 mots-code de correction d’erreur. Le niveau d’erreur est sélectionnable lors de la création du symbole et conditionne le nombre de mots-code de correction (mini : niveau 0→2 mots-code ; maxi niveau 8→512 mots-code). Cela permet la lecture du code à barres~~\
\
~~même en cas de destruction partielle du code. | Start pattern Indicateur Col.1 Col.4 Indicateur Stop pattern Ligne 1Capture d’écran manquante (image supprimée de la documentation source d’origine).Ligne 6 ###### Exemple d’un Code à barres PDF417 ###### DataMatrix (fonction Bar\_Datamatrix) | \*\*Nom\*\* | DataMatrix | | --- | --- | | \*\*Type de données codées\*\* | les tables ASCII et ISO | | \*\*Propriétés\*\* | Bidimensionnel, encode jusqu’à 2335 caractères alphanumériques ou 3116 caractères numériques | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | Cf § Les instructions et commandes de contrôle / Bar\_DataMatrix | | \*\*Polices requises\*\* | police \*\*dmx.sfp\*\* | | \*\*Exemple d’utilisation\*\* | Dans le fichier sjp :~~\
\
~~/Char 5 dmx.sfp~~\
\
~~Dans le fichier sp :~~\
\
~~…………~~\
\
~~Bar\_DataMatrix (L8:C1,60) To 1335, 256~~\
\
~~Text 5 ModuleWidth 5 Rows 26 Cols 26~~\
\
~~………… | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | | \*\*Remarques avancées\*\* | Le code à barres bidimensionnel, DataMatrix, est constitué d’un ensemble de lignes et de colonnes contenant des modules et est délimité par un \*\*finder pattern\*\*, bordure de reconnaissance de un module de large sur les quatre côtés. Les côtés gauche et bas sont des lignes comprenant des modules de couleur noire tandis que les côtés haut et droit sont constitués de modules alternativement noir et blanc. Le symbole peut être de forme carrée ou rectangulaire selon la taille, représentée par le nombre de modules par ligne et par colonne, choisie.~~\
\
~~Le symbole est constitué d’une partie représentant les données et d’une partie représentant des codes de correction d’erreur permettant de reconstituer les données même si une partie du symbole est abimé.~~\
\
~~Il y a deux types de symboles DataMatrix, ECC 000-~~\
\
~~140 et ECC 200 mais, seul ECC 200 est géré par StarPage.~~\
\
~~Le module est un carré dont le côté peut mesurer de 10 à 30 mils (1 mils = 1 millième de pouce), soit entre~~\
\
~~0.254 et 0.762 mm, ce qui correspond, pour une imprimante 300 dpi, entre 3 et 9 points. Le fichier de police associé contiendra des modules variant de 3 à 12 points. | ###### DataMatrix (Tbarcode) | \*\*Nom\*\* | DataMatrix | | --- | --- | | \*\*Type de données codées\*\* | les tables ASCII et ISO | | \*\*Propriétés\*\* | Bidimensionnel, encode jusqu’à 2335 caractères alphanumériques ou 3116 caractères numériques | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | Cf Extern\_Func\_Datamatrix | | \*\*Exemple d’utilisation\*\* | \*Windows :\*~~\
\
~~Set Extern\_Func(“dmx;0;0;0;TRUE;” + data, “sjgraph.dll”, “sjg\_barcode”) to var~~\
\
~~\*Unix/Linux :\*~~\
\
~~Set Extern\_Func(“dmx;0;0;0;TRUE;” + data, “/usr/local/share/tbarcode11”, “sjg\_barcode”) to var | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | | \*\*Remarques avancées\*\* | Le code à barres bidimensionnel, DataMatrix, est constitué d’un ensemble de lignes et de colonnes contenant des modules et est délimité par un \*\*finder pattern\*\*, bordure de reconnaissance de un module de large sur les quatre côtés. Les côtés gauche et bas sont des lignes comprenant des modules de couleur noire tandis que les côtés haut et droit sont constitués de modules alternativement noir et blanc. Le symbole peut être de forme carrée ou rectangulaire selon la taille, représentée par le nombre de modules par ligne et par colonne, choisie.~~\
\
~~Le symbole est constitué d’une partie représentant les données et d’une partie représentant des codes de correction d’erreur permettant de reconstituer les données même si une partie du symbole est abimé.~~\
\
~~Il y a deux types de symboles DataMatrix, ECC 000-~~\
\
~~140 et ECC 200 mais, seul ECC 200 est géré par StarPage.~~\
\
~~Le module est un carré dont le côté peut mesurer de 10 à 30 mils (1 mils = 1 millième de pouce), soit entre~~\
\
~~0.254 et 0.762 mm, ce qui correspond, pour une imprimante 300 dpi, entre 3 et 9 points. Le fichier de police associé contiendra des modules variant de 3 à 12 points. | ###### MaxiCode | \*\*Nom\*\* | MaxiCode | | --- | --- | | \*\*Type de données codées\*\* | les tables ASCII et ISO | | \*\*Propriétés\*\* | bidimensionnelle inventée par UPS pour ses colis. Il est désormais dans le domaine public et permet la représentation de 93 caractères alpha-numériques. Sa taille est fixe et fait précisément 1 pouce~~<sup>~~2~~</sup>~~ soit 6,45 cm\~\~<sup>~~2~~</sup>~~. | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | Cf § Extern\_Func\_MaxiCode | | \*\*Logiciel requis\*\* | TBarcode | | \*\*Exemple d’utilisation\*\* | Dans le fichier sp :~~\
\
~~Set Extern\_Func(“UPS;4;S;TRUE;chaine a encoder”,”répertoire sjgraph.dll ou lib TBarcode(sous unix)”, “sjg\_barcode”)to NomVariable | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | ###### QR-Code | \*\*Nom\*\* | QR-Code | | --- | --- | | \*\*Type de données codées\*\* | les tables ASCII et ISO | | \*\*Propriétés\*\* | Le \*\*code QR\*\* est un type de code-barres en deux dimensions (ou code matriciel \*datamatrix\*) constitué de modules noirs disposés dans un carré à fond blanc. L’agencement de ces points définit l’information que contient le code. \*QR\* (abréviation de \*Quick Response\*) signifie que le contenu du code peut être décodé rapidement après avoir été lu par un lecteur de code-barres, un téléphone mobile, un smartphone, ou encore une webcam. Son avantage est de pouvoir stocker plus d’informations qu’un code à barres classique, et surtout des données directement reconnues par des applications, permettant ainsi de déclencher facilement des actions. | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | Cf § Extern\_Func\_QRCode | | \*\*Logiciel requis\*\* | TBarcode | | \*\*Exemple d’utilisation\*\* | Dans le fichier sp :~~\
\
~~Set Extern\_Func(“QR-CODE; TailleX,Y; 0;TRUE;chaine a encoder”,”répertoire sjgraph.dll ou lib TBarcode(sous unix)”, “sjg\_barcode”)to NomVariable | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | ###### AZTEC | \*\*Nom\*\* | AZTEC | | --- | --- | | \*\*Type de données codées\*\* | les tables ASCII et ISO | | \*\*Propriétés\*\* | Le \*\*code Aztec\*\* est un type de code-barres bidimensionnel construit autour d’une cible carrée centrale. Les données sont encodées dans des couches concentriques de pixels autour de cette cible. Il est souvent confondu avec le QR-Code dont les trois cibles sont présentes aux coins du code-barres.~~\
\
~~Le code Aztec est fréquemment utilisé pour les billets de train dématérialisés. Il s’agit du type de code 2D utilisé par la SNCF, iDTGV, Eurostar, Thalys, DB Bahn, SNCB, ainsi que par d’autres compagnies ferroviaires. | | \*\*Exemple StarPage\*\* | Se reporter aux annexes | | \*\*Instructions StarPage\*\* | Cf § Extern\_Func\_Aztec | | \*\*Logiciel requis\*\* | Option Graph | | \*\*Exemple d’utilisation\*\* | Dans le fichier sp :~~\
\
~~Set Extern\_Func(“AZTEC; \*\*\*cf taille\*\*\*; \*\*\*cf format\*\*\*; \*\*TRUE\*\*;” + AZTECCode, “sjgraph”, “sjg\_barcode”) to graphname | | \*\*Remarques\*\* | Si les données ne répondent pas aux exigences, cela ne fonctionnera pas | ###### Options AZTEC \*\*TAILLE\*\* - /// 0: Compute size of Aztec symbol automatically - 15×15, /// 1: Fixed square symbol-size 15 x 15 - 19×19, /// 2: Fixed square symbol-size 19 x 19 - 23×23, /// 3: Fixed square symbol-size 23 x 23 - 27×27, /// 4: Fixed square symbol-size 27 x 27 - 31×31, /// 5: Fixed square symbol-size 31 x 31 (first full-range symbol) - 37×37, /// 6: Fixed square symbol-size 37 x 37 - 41×41, /// 7: Fixed square symbol-size 41 x 41 - 45×45, /// 8: Fixed square symbol-size 45 x 45 - 49×49, /// 9: Fixed square symbol-size 49 x 49 - 53×53, /// 10: Fixed square symbol-size 53 x 53 - 57×57, /// 11: Fixed square symbol-size 57 x 57 - 61×61, /// 12: Fixed square symbol-size 61 x 61 - 67×67, /// 13: Fixed square symbol-size 67 x 67 - 71×71, /// 14: Fixed square symbol-size 71 x 71 - 75×75, /// 15: Fixed square symbol-size 75 x 75 - 79×79, /// 16: Fixed square symbol-size 79 x 79 - 83×83, /// 17: Fixed square symbol-size 83 x 83 - 87×87, /// 18: Fixed square symbol-size 87 x 87 - 91×91, /// 19: Fixed square symbol-size 91 x 91 - 95×95, /// 20: Fixed square symbol-size 95 x 95 - 101×101 /// 21: Fixed square symbol-size 101 x 101 - 105×105 /// 22: Fixed square symbol-size 105 x 105 - 109×109 /// 23: Fixed square symbol-size 109 x 109 - 113×113 /// 24: Fixed square symbol-size 113 x 113 - 117×117 /// 25: Fixed square symbol-size 117 x 117 - 121×121 /// 26: Fixed square symbol-size 121 x 121 - 125×125 /// 27: Fixed square symbol-size 125 x 125 - 131×131 /// 28: Fixed square symbol-size 131 x 131 - 135×135 /// 29: Fixed square symbol-size 135 x 135 - 139×139 /// 30: Fixed square symbol-size 139 x 139 - 143×143 /// 31: Fixed square symbol-size 143 x 143 - 147×147 /// 32: Fixed square symbol-size 147 x 147 - 151×151 /// 33: Fixed square symbol-size 151 x 151 - 19x19\_Rd /// 34: Fixed square symbol-size 19 x 19, used for reader initialization - 23x23\_Rd /// 35: Fixed square symbol-size 23 x 23, used for reader initialization - 27x27\_Rd /// 36: Fixed square symbol-size 27 x 27, used for reader initialization - 11×11 Aztect Rune /// 37: Fixed square symbol-size 11 x 11, Aztec Rune \*\*FORMAT\*\* - “Default” /// 0: Default mode : The standard format of the AZTEC Code. - “UCC/EAN/GS1” /// 1: UCC/EAN/GS1 mode : Special format defined by UCC and EAN/GS1 for encoding Application entifiers his format adds the function character FNC1 at 1st position in the symbol. - “Industry” /// 2: Industry mode: supports peculiar industry formats (adds FNC1 at 2nd position). Pour le format 2 “Industry”, on ajoute, après le code, une virgule et soit un caractère (majuscule ou minuscule), soit 2 chiffres \*\*SEQUENCE ESC\*\* \*\*TRUE\*\* Chaine avec des séquences escape \*\*FALSE\*\* Chaine sans séquences escape La ligne de commande pour supprimer le fichier BMP temporaire créé \*\*Set Extern\_Func( “AZTEC;” + graphname, “sjgraph”, “sjg\_release”) to ret\*\* ## COMMANDES \*\*D’ENVIRONNEMENT\*\* ### LES COMMANDES D’ENVIRONNEMENT ###### Définition des commandes d’environnement Ces commandes sont disponibles, lors de la définition d’une page de reformatage, pour définir l’environnement d’impression disponible sous StarJet.Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Portrait Cette commande permet de définir le format du papier et le sens d’impression horizontal | \*\*Syntaxe\*\* | Portrait{A4\\|A3\\|Letter\\|Legal\\|Ledger\\|Executiv e\\|Size= by }~~\
\
~~\[Format=nx by ny \[across\\|down]] | | --- | --- | | \*\*Paramètres\*\* | Le mot-clé Portrait est suivi du format physique de la feuille~~\
\
~~Size est le mot-clé permettant de définir le format de papier~~\
\
~~x représente la taille en inch du papier sur l’axe des X by représente le mot-clé indispensable pour séparer les valeurs en inch associées~~\
\
~~y représente la taille en inch du papier sur l’axe des Y Format est un mot-clé demandant l’impression de plusieurs pages logiques par page physique~~\
\
~~nx représente horizontalement le nombre de pages logiques par page physique~~\
\
~~ny représente verticalement le nombre de pages logiques par page physique~~\
\
~~across est un mot clé demandant le déplacement latéral des pages logiques~~\
\
~~down est un mot clé demandant le déplacement vertical des pages logiques | ###### Landscape Cette commande permet de définir le format du papier et le sens d’impression vertical. | \*\*Syntaxe\*\* | Landscape{A4\\|A3\\|Letter\\|Legal\\|Ledger\\|Executiv e\\|Size= by }~~\
\
~~\[Format=nx by ny \[across\\|down]] | | --- | --- | | \*\*Paramètres\*\* | Le mot-clé Landscape est suivi du format physique de la feuille~~\
\
~~Size est le mot-clé permettant de définir le format de papier~~\
\
~~x représente la taille en inch du papier sur l’axe des X by représente le mot-clé indispensable pour séparer les valeurs en inch associées~~\
\
~~y représente la taille en inch du papier sur l’axe des Y Format est un mot-clé demandant l’impression de plusieurs pages logiques par page physique.~~\
\
~~nx représente horizontalement le nombre de pages logiques par page physique~~\
\
~~ny représente verticalement le nombre de pages logiques par page physique~~\
\
~~across représente le nombre de pages logiques par page physique horizontalement~~\
\
~~down représente le nombre de pages logiques par page physique verticalement | ###### LineSpacing Cette commande permet de définir l’espace interligne à utiliser lors de l’impression. | \*\*Syntaxe\*\* | LineSpacing | | --- | --- | | \*\*Paramètres\*\* | ls représente en points PCL l’espace entre les lignes | ###### Copies ###### Duplex Cette commande permet d’imprimer plusieurs copies de chaque page. | \*\*Syntaxe\*\* | Copies | | --- | --- | | \*\*Paramètres\*\* | nc représente le nombre de copies | Cette commande permet d’activer ou de désactiver le mode Recto-Verso. | \*\*Syntaxe\*\* | Duplex {0\\|1\\|2} | | --- | --- | | \*\*Paramètres\*\* | La valeur 0 invalide le mode Recto-Verso.~~\
\
~~La valeur 1 active le mode Recto-Verso horizontal. C’est celui généralement utilisé avec l’orientation Landscape.~~\
\
~~La valeur 2 active le mode Recto-Verso vertical. C’est celui généralement utilisé avec l’orientation Portrait. |Capture d’écran manquante (image supprimée de la documentation source d’origine).prise en compte. ###### Intray Cette commande permet de sélectionner un bac d’alimentation papier de l’imprimante. | \*\*Syntaxe\*\* | Intray | | --- | --- | | \*\*Paramètres\*\* | nt représente le numéro du bac d’alimentation papier | ###### Outbin Cette commande permet de sélectionner le bac de sortie du papier de l’imprimante. | \*\*Syntaxe\*\* | OutBin | | --- | --- | | \*\*Paramètres\*\* | nb représente le numéro du bac de sortie du papier | ###### Use Overlay Cette commande permet d’utiliser l’overlay associé lors de la définition d’un layout de type Page. | \*\*Syntaxe\*\* | Use Overlay | | --- | --- | | \*\*Paramètres\*\* | no représente le numéro de l’overlay utilisé | ## FONCTIONS GENERIQUES ### FONCTIONS GENERIQUES ###### Définition des fonctions génériques Ces fonctions permettent de tester le contenu de vos zones de données. Ces fonctions portent sur le contenu alphanumérique des informations, sans modifier les caractères contenus dans la page d’entrée ###### Toupper Cette fonction permet de convertir les caractères minuscules en majuscules | \*\*Syntaxe\*\* | toupper () | | --- | --- | ###### Tolower Cette fonction permet de convertir les caractères majuscules en minuscules | \*\*Syntaxe\*\* | tolower () | | --- | --- | ###### Trim ###### Left ###### Right Cette fonction permet de supprimer les blancs en début et en fin de chaîne. | \*\*Syntaxe\*\* | trim () | | --- | --- | Cette fonction permet retourner la partie gauche de l’expression sur la longueur len | \*\*Syntaxe\*\* | left () | | --- | --- | Cette fonction permet retourner la partie droite de l’expression sur la longueur len. | \*\*Syntaxe\*\* | right () | | --- | --- | ###### Format Cette fonction permet de formater la chaîne avec, en option, un caractère décimal et un séparateur de millier indiqué. | \*\*Syntaxe\*\* | format (expression string, format,~~\
\
~~\[décimal, séparateur]) | | | | --- | --- | --- | --- | | | \*\*Chaîne\*\* | \*\*Format spécifié\*\* | \*\*Résultat\*\* | | \*\*Paramètres\*\* | 56123,567 | “” | 56123,567 | | | 56123,567 | “# ###,##” | 56123,57 | | | 56123,567~~\
\
~~56123,567~~\
\
~~56123,567 | “# ###,####” “#.###,0000”~~\
\
~~“#,###.000”,’.’,’,’ | 56123,567~~\
\
~~56.123,5670~~\
\
~~56,123.5670 | ###### Alignright Cette fonction permet de placer la chaîne indiquée sur la droite d’une chaîne de nombre de caractères. Si un caractère de remplissage est indiqué, les blancs de tête sont remplacés par ce caractère. N’utiliser cette fonction qu’avec des polices de caractères à espacement fixe. | \*\*Syntaxe\*\* | alignright (expression string ,nombre,~~\
\
~~\[remplissage]) | | | --- | --- | --- | | \*\*Paramètres\*\* | \*\*Appel\*\* | \*\*Résultat\*\* | | alignright (“Hello”, 10, ‘.’)~~\
\
~~alignright (“Hello”, 10) alignright (“Hello”, 2, ‘.’) | “. Hello”~~\
\
~~” Hello” “Hello” | | ###### Sum Cette fonction permet d’effectuer la somme des valeurs numériques contenues sur la colonne définie par un bloc de données. | \*\*Syntaxe\*\* | Sum (bloc) | | --- | --- | ###### Literal Cette fonction permet de convertir une valeur numérique en expression littérale éventuellement composée d’une partie entière et d’une partie décimale. Elle permet aussi de gérer les unités monétaires. | \*\*Syntaxe\*\* | Literal (~~\
~~ExpStrCentimes, ExpStrCentimes]>) | | | --- | --- | --- | | | \*\*Appel\*\* | \*\*Résultat\*\* | | | literal(50.01 , | Cinquante virgule un | | | “FRA”, 2) | | | | literal(50.1 , “FRA”, | Cinquante virgule dix | | | 2) | | | | literal(50.1, “FRA”, | Cinquante virgule un | | \*\*Paramètres\*\* | 1)~~\
\
~~literal (1256.36, | Mille deux cent~~\
\
~~cinquante six euros | | | “FRA”, 2, “euros”, | et trente six | | | “euro”, “centimes”, | centimes | | | “centime”) | | | | literal (1200, “FRA”, | mille deux cent euros | | | 2, “euros”, “euro”, | | | | “centimes”, | | | | “centime”) | zéro euros | | | literal (0 , “FRA”, 2 | | | | , “euros”, “euro”, | | | | “centimes”, | | | | “centime”) | | | \*\*Langues supportées\*\* | \*\*Abréviations utilisées pour l’ExpStrLangage\*\* | | --- | --- | | Allemand | DEU | | Espagnol | ESP | | Anglais (Etats Unis) | ENU | | Français | FRA | | Portugais | PTG | | Italien | ITA | | Indonésien | IDN | ###### Cut Cette fonction permet de découper une chaîne de caractères en faisant une césure au niveau des espaces. Le résultat est renvoyé par la fonction et la variable contient la chaîne initiale moins ce qui a été renvoyé. | \*\*Syntaxe\*\* | Cut (NomVariable, ExpStrLongueurMax,~~\
\
~~\[‘FillChar’]) | | --- | --- | | \*\*Paramètres\*\* | La variable ESSAI contient “Bonjour les amis” | | \*\*Appel\*\* | \*\*Renvoi\*\* | | CUT (ESSAI, 10) | “Bonjour” donc ESSAI | | contient “les amis” | | | CUT (ESSAI, 11) | “Bonjour les” donc~~\
\
~~ESSAI contient “amis” | | CUT (ESSAI, 10, ‘\*’ ) | “Bonjour\*\*\*” donc ESSAI contient “les amis” | | CUT (ESSAI, 5, ‘\*’ ) | “Bonjo” donc ESSAI~~\
\
~~contient “ur les amis” | | La variable ESSAI contient un paragraphe que l’on veut mettre sur plusieurs lignes avec 80 colonnes maximum.~~\
\
~~WHILE NOT BLANK (ESSAI) # tant que essai n’est pas vide, il y a des données à imprimer~~\
\
~~PUT CUT (ESSAI, 80) TO 100, COORD\_TEXT\_Y TEXT 1~~\
\
~~SET COORD\_TEXT\_Y%+ 50 TO COORD\_TEXT\_Y #~~\
\
~~interlignage ENDWHILE. | | ###### Readdate Cette fonction permet de lire une chaîne de caractères comme une date et de l’interpréter selon le format spécifié. Retourne le résultat de la lecture sous la forme YYYYMMDD (cf formatdate). | \*\*Syntaxe\*\* | Readdate (ExpStrLecture, ExpStrFormat) | | --- | --- | | \*\*Exemple\*\* | READDATE (“1/12/00”, “D/M/Y”) 20001201 | | \*\*Formes possibles pour les formats entrants\*\* | | --- | | DDMMYY DD\*\*sep\*\*MM\*\*sep\*\*YY | | DDYYMM DD\*\*sep\*\*YY\*\*sep\*\*MM | | MMDDYY MM\*\*sep\*\*DD\*\*sep\*\*YY | | MMYYDD MM\*\*sep\*\*YY\*\*sep\*\*DD | | YYMMDD YY\*\*sep\*\*MM\*\*sep\*\*DD | | YYDDMM YY\*\*sep\*\*DD\*\*sep\*\*MM | | DDMMYYYY DD\*\*sep\*\*MM\*\*sep\*\*YYYY | | DDYYYYMM DD\*\*sep\*\*YYYY\*\*sep\*\*MM | | MMDDYYYY MM\*\*sep\*\*DD\*\*sep\*\*YYYY | | MMYYYYDD MM\*\*sep\*\*YYYY\*\*sep\*\*DD | | YYYYMMDD YYYY\*\*sep\*\*MM\*\*sep\*\*DD | | YYYYDDMM YYYY\*\*sep\*\*DD\*\*sep\*\*MM | | D\*\*sep\*\*M\*\*sep\*\*Y | | M\*\*sep\*\*Y\*\*sep\*\*D | | D\*\*sep\*\*Y\*\*sep\*\*M | | Y\*\*sep\*\*M\*\*sep\*\*D | | M\*\*sep\*\*D\*\*sep\*\*Y | | Y\*\*sep\*\*D\*\*sep\*\*M | | \*\*Today\*\* | \*\*sep\*\* est un séparateur Les séparateurs possibles sont : le slash (/), le tiret (-), les deux points (:), l’espace et le point (.). Le mot-clé \*\*Today\*\* (\*\*comme premier paramètre\*\*) renvoie la date du jour. exemple : ReadDate(“Today”,””)Capture d’écran manquante (image supprimée de la documentation source d’origine).\*\*Today\*\*Capture d’écran manquante (image supprimée de la documentation source d’origine).\*\*YY\*\* ~~<sup>~~ème~~</sup> <sup>~~ème~~</sup>~~ ☼ Exemple : 35 🡲 2035 70 🡲 1970 ###### Formatdate Cette fonction permet d’appliquer le format spécifié à la date donnée sous forme YYYYMMDD. | \*\*Syntaxe\*\* | Formatdate (ExpStrDateCode(YYYYMMDD),~~\
\
~~ExpStrFormat, ExpStrLanguage) | | --- | --- | | \*\*Paramètres\*\* | \*\*Les formats applicables à la valeur du jour\*\* | | \*\*D\*\* : expression numérique de la valeur significative du jour | | | \*\*Appel\*\* | \*\*Renvoi\*\* | | FORMATDATE (“20001105”, “D”, “FRA”) | 5 | | FORMATDATE ( “20011223”, “D” , ” FRA”) | 23 | | \*\*DD\*\* : expression numérique de la valeur jour sur deux positions | | | \*\*Appel\*\* | \*\*Renvoi\*\* | | FORMATDATE (“20001105”, “DD”, “FRA”) | 05 | | FORMATDATE ( “20011223”, “DD” , ” FRA”) | 23 | | \*\*Dt\*\* : expression numérique de la valeur jour sur deux positions (adjectif numéral ordinal) précédée par un article dans la langue demandée | | | | | | FORMATDATE (“20001101”, “Dt”, “FRA”) | Le 1~~<sup>~~er~~</sup>\~\~ | | FORMATDATE (“20011223”, “Dt”, “FRA”) | Le 23 | | FORMATDATE (“20001101”, “Dt”, “ENU”) | The 1\~\~<sup>~~st~~</sup>\~\~ | | FORMATDATE (“20011223”, “Dt”, “ENU”) | The 23\~\~<sup>~~th~~</sup>\~\~ | | \*\*d\*\* : expression alphabétique de la valeur du jour dans la langue demandée. | | | FORMATDATE (“20001101”, “d”, “FRA”) | un | | FORMATDATE (“20011223”, “d”, “FRA”) | Vingt trois | | FORMATDATE (“20001101”, “d”, “ENU”) | One | | FORMATDATE (“20011223”, “d”, “ENU”) | Twenty three | | \*\*dt\*\* : expression alphabétique de la valeur du jour (adjectif numéral ordinal) précédée par un article dans la langue demandée. | | | FORMATDATE (“20001101”, “dt”, “FRA”) | Le premier | | FORMATDATE (“20011223”, “dt”, “FRA”) | Le vingt trois | | FORMATDATE (“20001101”, “dt”, “ENU”) | The first | | FORMATDATE (“20011223”, “dt”, “ENU”) | The twenty- third | | | \*\*Les formats applicables à la valeur du mois\*\* | | --- | --- | | \*\*M\*\* : expression numérique de la valeur significative du mois | | | FORMATDATE (“20000305”, “M”, “FRA”) | 3 | | FORMATDATE (“20011223”, “M”, “FRA”) | 12 | | \*\*MM\*\* : expression numérique de la valeur du mois sur deux positions | | | FORMATDATE (“20000305”, “MM”, “FRA”) | 03 | | FORMATDATE (“20011223”, “MM”, “FRA”) | 12 | | | \*\*m\*\* : expression alphabétique de la valeur du mois dans la langue demandée | | FORMATDATE (“20000301”, “m”, “FRA”) | mars | | FORMATDATE (“20000723”, “m”, “ENU”) | july | | \*\*m…m\*\* : expression alphabétique de la valeur du mois sur \*\*n\*\*~~\
\
~~caractères dans la langue demandée | | | FORMATDATE (“20000305”, “mmm”, “FRA”) | mar | | FORMATDATE (“20000305”, “mmmm”, “ENU”) | marc | | \*\*Les formats applicables à la valeur de l’année\*\* | | | \*\*Y\*\* : expression numérique complète de la valeur de l’année | | | FORMATDATE (“20001105”, “Y”, “FRA”) | 2000 | | FORMATDATE (“001105”, “Y”, “FRA”) | 00 | | \*\*YY\*\* : expression numérique de la valeur de l’année sur deux positions. | | | FORMATDATE (“20001105”, “YY”, “FRA”) | 00 | | FORMATDATE (“20011105”, “YY”, “FRA”) | 01 | | \*\*YYYY\*\* : expression numérique de la valeur de l’année sur quatre positions. | | | FORMATDATE (“20001105”, “YYYY”, “FRA”) | 2000 | | FORMATDATE (“011105”, “YYYY”, “FRA”) | 2001 | | \*\*y\*\* : expression alphabétique complète de la valeur de l’année dans la langue demandée | | | FORMATDATE (“20001105”, “y”, “FRA”) | deux mille | | FORMATDATE (“20001105”, “y”, “ENU”) | two thousand |Capture d’écran manquante (image supprimée de la documentation source d’origine).Ex : FORMATDATE (“20001105”, “D\*\*sep\*\*M\*\*sep\*\*Y”, “FRA”) 🠖 05/11/2000 ou FORMATDATE (“20001105”, “DMY”, “FRA”) 🠖 05112000Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).- le français symbolisé par l’abréviation FRA - l’anglais symbolisé par l’abréviation ENU - l’allemand symbolisé par l’abréviation DEUCapture d’écran manquante (image supprimée de la documentation source d’origine).\*\*YY\*\* ~~<sup>~~ème~~</sup> <sup>~~ème~~</sup>~~ ☼ Exemple : 35 🡲 2035 70 🡲 1970 ###### Extern\_Func Cette commande permet d’appeler une fonction externe à partir d’un fichier .dll ou .so. | \*\*Syntaxe\*\* | Extern\_Func (expr \[;expr]\*, library\_name,~~\
\
~~function\_name) | | --- | --- | | \*\*Paramètres\*\* | Expr représente la chaîne source ou paramètre entrant \[;expr]\* représente la concaténation d’une série d’expressions~~\
\
~~library\_name représente le nom du fichier .dll (Windows) ou .so (Unix)~~\
\
~~function\_name représente le nom de la fonction externe | | \*\*Commentaires\*\* | - Il est déconseillé d’archiver, à l’aide de StarSafe, des projets StarPage utilisant des données arabes. Le traitement des données arabes reposant sur un module externe, la consultation d’une telle archive serait incorrecte si le module externe n’est pas présent, et cela risquerait d’affecter l’intégrité de l’archive. Si, cependant, tel est le cas, aucune garantie ne sera apportée à la solution complète.~~\
~~- \*\*Lors du développement de la librairie, donner le nom exact de la fonction développée dans la dll. Les paramètres de cette fonction sont deux chaînes de caractères.\*\*~~\
\
~~Exemple de prototype en C :~~\
\
~~\*\*declspec(dllexport) int stdcall\*\* MyFunction(\*\*unsigned char \*\*\*szInParam, \*\*unsigned char \*\*\*szResult)~~\
\
~~la fonction peut écrire jusqu’à \*\*64 Kilo octets dans szResult\*\*. Un code de retour de zéro indique le bon déroulement de la fonction. | | \*\*Exemple\*\* | Extern\_Func (L1:C1,52, “arabic.dll”, “convertISO”)~~\
\
~~L’exemple ci-dessus est une conversion de données arabes : les données arabes (de droite à gauche) sont converties par le biais d’une fonction externe, en une chaîne (de gauche à droite) associée avec une police arabe.~~\
\
~~La librairie “arabic.dll” réalisée par APPIC peut appeler deux fonctions :~~\
\
~~- convertISO traite les données arabes provenant d’un système UNIX dans un format ISO8859-6~~\
~~- convertMS traite les données arabes provenant d’un système Windows dans un format Microsoft CP1256.~~\
\
~~Les polices de taille fixe à associer sont les fichiers suivants (taille 9, 12, 16, 24) : nk09rea.sfp, nk12rea.sfp, nk16rea.sfp, nk24rea.sfp. | | --- | --- |Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).###### Extern\_Func\_Datamatrix Cette commande permet d’appeler une fonction externe permettant la génération d’une image bitmap d’un code à barre de type Datamatrix. Pour les paramètres techniques du code à barre, voir la documentation TBarCodeX11\_Manual\_EN.pdf | \*\*Syntaxe\*\* | Extern\_Func(“DMX;expr2;expr3;expr4;expr5;expr6″,” expr7″, “sjg\_barcode”) | | --- | --- | | \*\*Paramètres\*\* | DMX type de code à barre à générer~~\
\
~~Expr2 taille exprimé en 10e de mm (options Datamatrix) Expr3 taille (lignes/colonnes) du code (options Datamatrix) Expr4 largeur du code (en millième de mm) (options Datamatrix)~~\
\
~~Expr5 présence de séquence(s) Escape ou non~~\
\
~~Expr6 chaine à encoder~~\
\
~~Expr7 chemin d’accès au répertoire où se trouve installé la librairie TBarcode~~\
\
~~sjg\_barcode représente le nom de la fonction à exécuter | | \*\*Commentaires\*\* | - La librairie TBarcode génère une image bitmap du code à barre et retourne son nom complet.~~\
~~- Peut coder jusqu’à 2335 caractères alphanumériques ou 3116 caractères numériques sur environ 1cm².~~\
~~- La fonction sjg\_barcode est à associer avec la fonction sjg\_release qui permet, le programme terminé, de supprimer les images bitmap créées. | | \*\*Exemple\*\* | Set Extern\_Func(“DMX;0;0;0;TRUE;chaine a encoder”, “sjgraph.dll \*ou\* unix TBarCode librairie”, “sjg\_barcode”) to bc\_graphname Put “/Picture ” + bc\_graphname + ” x=10 y=640″ To 0, 0 Text 1~~\
\
~~Set Extern\_Func(“DMX;bc\_graphname “,”sjgraph.dll \*ou\* unix TBarCode librairie”,”sjg\_release”) to ret~~\
\
~~L’exemple ci-dessus génère l’image d’un code à barre contenant “chaine à encoder”. Le nom de l’image est récupéré dans la variable bc\_graphname.~~\
\
~~La commande Put /Picture… va intégrer l’image du code à barre dans le PCL de StarPage.~~\
\
~~La fonction “Extern\_Func… sjg\_release ” indique à StarPage qu’il faudra supprimer cette image à la fin du traitement. | ###### Options Datamatrix \*\*Expr2\*\* : La 1ère valeur est la taille du code exprimée en 10ème de millimètre Ex: 100,100 (1cm x 1cm) 220,220 (2,2cm x 2,2cm) \*\*Expr3\*\* : La 2ème valeur sera la taille en lignes/colonnes du code // 0 = “Default”, // 1 = Fixed square symbol-size 10 x 10 //< =16: Fixed square symbol-size 64 x 64 //< =2: Fixed square symbol-size 12 x 12/ //< =17: Fixed square symbol-size 72 x 72 //< =3: Fixed square symbol-size 14 x 14 //< =18: Fixed square symbol-size 80 x 80 //< =4: Fixed square symbol-size 16 x 16 //< =19: Fixed square symbol-size 88 x 88 //< =5: Fixed square symbol-size 18 x 18 //< =20: Fixed square symbol-size 96 x 96 //< =6: Fixed square symbol-size 20 x 20 //< =21: Fixed square symbol-size 104 x 104 //< =7: Fixed square symbol-size 22 x 22 //< =22: Fixed square symbol-size 120 x 120 //< =8: Fixed square symbol-size 24 x 24 //< =23: Fixed square symbol-size 132 x 132 //< =9: Fixed square symbol-size 26 x 26 //< =24: Fixed square symbol-size 144 x 144 //< =10: Fixed square symbol-size 32 x 32 //< =25: Fixed rectangular symbol-size 8 x 18 //< =11: Fixed square symbol-size 36 x 36 //< =26: Fixed rectangular symbol-size 8 x 32 //< =12: Fixed square symbol-size 40 x 40 //< =27: Fixed rectangular symbol-size 12 x 26 //< =13: Fixed square symbol-size 44 x 44 //< =28: Fixed rectangular symbol-size 12 x 36 // =14: Fixed square symbol-size 48 x 48 //< =29: Fixed rectangular symbol-size 16 x 36 //< =15: Fixed square symbol-size 52 x 52 //< =30: Fixed rectangular symbol-size 16 x 48 \*\*Expr4\*\* : La 3ème valeur sera la largeur de l’image // 0 = “Default”, // 1 = “370” // 2 = “400” // 3 = “430” // 4 = “450” \*\*Expr5\*\* : TRUE ou FALSE c’est pour indiquer si dans les données il y a des séquences ESC ###### Extern\_Func\_Maxicode Cette commande permet d’appeler une fonction externe permettant la génération d’une image bitmap d’un code à barre de type MaxiCode. Pour les paramètres techniques du code à barre, voir la documentation TBarCodeX10\_Manual\_EN.pdf | \*\*Syntaxe\*\* | Extern\_Func(“UPS;expr2;expr3;expr4;expr5″,”expr6”~~\
\
~~, “sjg\_barcode”) | | --- | --- | | \*\*Paramètres\*\* | UPS type de code à barre à générer~~\
\
~~Expr2 mode du code à barres (cf page 80) Expr3 format du code à barres (cf page 85) Expr4 présence de séquence(s) Escape ou non Expr5 chaine à encoder~~\
\
~~Expr6 chemin d’accès au répertoire où se trouve installé la librairie TBarcode~~\
\
~~sjg\_barcode représente le nom de la fonction à exécuter | | \*\*Commentaires\*\* | - La librairie TBarcode génère une image bitmap du code à barre et retourne son nom complet.~~\
~~- \*\*Le nombre maximun de caractères pouvant être encodés et de 93 caractères alpha-numériques.\*\*~~\
~~- La fonction sjg\_barcode est à associer avec la fonction sjg\_release qui permet, le programme terminé, de supprimer les images bitmap créées. | | \*\*Exemple\*\* | Set Extern\_Func(“UPS;4;S;TRUE;chaine a encoder”, “sjgraph.dll”, “sjg\_barcode”) to bc\_graphname~~\
\
~~Put “/Picture ” + bc\_graphname + ” x=10 y=640″ To 0, 0 Text 1~~\
\
~~Set Extern\_Func(“UPS;bc\_graphname “,”sjgraph.dll \*or\* unix TBarCode library”,”sjg\_release”) to ret~~\
\
~~L’exemple ci-dessus génère l’image d’un code à barre contenant “chaine a encoder”. Le nom de l’image est récupéré dans la variable bc\_graphname.~~\
\
~~La commande Put /Picture… va intégrer l’image du code à barre dans le PCL de StarPage.~~\
\
~~La fonction “Extern\_Func… sjg\_release ” indique à StarPage qu’il faudra supprimer cette image à la fin du traitement. | ###### Extern\_Func\_QR-Code Cette commande permet d’appeler une fonction externe permettant la génération d’une image bitmap d’un code à barre de type QR-Code. Pour les paramètres techniques du code à barres, voir la documentation TBarCodeX11\_Manual\_EN.pdf | \*\*Syntaxe\*\* | Extern\_Func(“QR-CODE;~~\
\
~~expr2;expr3;expr4;expr5;expr6″,”sjg\_barcode”) | | --- | --- | | \*\*Paramètres\*\* | QR-CODE type de code à barre à générer~~\
\
~~Expr2 dimension X,Y exprimée en dizième de millimètres~~\
\
~~Expr3 format du code à barres (0 par défaut) Expr4 présence de séquence(s) Escape ou non Expr5 chaine à encoder~~\
\
~~Expr6 chemin d’accès au répertoire où se trouve installé la librairie TBarcode~~\
\
~~sjg\_barcode nom de la fonction à exécuter | | \*\*Commentaires\*\* | - La librairie TBarcode génère une image bitmap du code à barre et retourne son nom complet.~~\
~~- La fonction sjg\_barcode est à associer avec la fonction sjg\_release qui permet, le programme terminé, de supprimer les images bitmap créées. | | \*\*Exemple\*\* | Set Extern\_Func(“QR- CODE;360,360;0;TRUE;chaine a~~\
\
~~encoder”,”sjgraph.dll”, “sjg\_barcode”) to graphname~~\
\
~~Put “/Picture ” + graphname + ” x=200 y=300″ To 0, 0 Text 1~~\
\
~~Set Extern\_Func(“QR-CODE;bc\_graphname “,”sjgraph.dll \*or\* unix TBarCode library”,”sjg\_release”) to ret~~\
\
~~L’exemple ci-dessus génère l’image d’un code à barre contenant “chaine a encoder”. Le nom de l’image est récupéré dans la variable graphname.~~\
\
~~La commande Put /Picture… va intégrer l’image du code à barre dans le PCL de StarPage.~~\
\
~~La fonction “Extern\_Func… sjg\_release ” indique à StarPage qu’il faudra supprimer cette image à la fin du traitement. | ###### Extern\_Func\_Aztec Cette commande permet d’appeler une fonction externe permettant la génération d’une image bitmap d’un code à barre de type Aztec. Pour les paramètres techniques du code à barres, voir la documentation TBarCodeX11\_Manual\_EN.pdf | \*\*Syntaxe\*\* | Extern\_Func(“AZTEC; expr2;expr3;expr4~~\
\
~~“,expr5,”sjg\_barcode”) | | --- | --- | | \*\*Paramètres\*\* | AZTEC type de code à barre à générer Expr2 Taille du code (cf table tailles) Expr3 format du code (cf table formats)~~\
\
~~Expr4 présence de séquence(s) Escape ou non~~\
\
~~Expr5 chemin d’accès au répertoire où se trouve installé la librairie TBarcode~~\
\
~~sjg\_barcode nom de la fonction à exécuter | | \*\*Commentaires\*\* | - La librairie SJGraph génère une image bitmap du code à barre et retourne son nom complet.~~\
~~- La fonction sjg\_barcode est à associer avec la fonction sjg\_release qui permet, le programme terminé, de supprimer les images bitmap créées. | | \*\*Exemple\*\* | Set Extern\_Func(“AZTEC;\*3\*;\*1\*;TRUE;” + AZTECCode, “sjgraph”, “sjg\_barcode”) to graphname~~\
\
~~Put “/Picture ” + graphname + ” x=200 y=300″ To 0, 0 Text 1~~\
\
~~Set Extern\_Func(“AZTEC;bc\_graphname “,”sjgraph.dll \*or\* unix TBarCode library”,”sjg\_release”) to ret~~\
\
~~L’exemple ci-dessus génère l’image d’un code à barre contenant “chaine à encoder”. Le nom de l’image est récupéré dans la variable graphname.~~\
\
~~La commande Put /Picture… va intégrer l’image du code à barre dans le PCL de StarPage.~~\
\
~~La fonction “Extern\_Func… sjg\_release ” indique à StarPage qu’il faudra supprimer cette image à la fin du traitement. | ###### Length ###### CHR Cette fonction permet de retourner le nombre de caractères d’une variable. | \*\*Syntaxe\*\* | length (nom variable) | | --- | --- | | \*\*Exemple\*\* | …………~~\
\
~~Value numero\_client1 Is Var Value numero\_client2 Is Var~~\
\
~~…~~\
\
~~…~~\
\
~~Set “34” to numero\_client1 Set “152” to numero\_client2~~\
\
~~………… | | \*\*Appel\*\* | \*\*Renvoi\*\* | | length(numero\_client1) | 2 | | length(numero\_client2) | 3 | Cette fonction permet de récupérer un caractère d’après son code ASCII. | \*\*Syntaxe\*\* | CHR(expr) | | | --- | --- | --- | | \*\*Paramètres\*\* | expr représente un élément du code ASCII (voir table ASCII) | | | \*\*Commentaires\*\* | - Cette fonction permet de récupérer et donc de gérer des caractères non imprimables (ex : saut de page). | | | \*\*Exemple\*\* | \*\*Appel\*\* | \*\*Renvoi\*\* | | CHR(65) | A | | | CHR(12) | Saut de page | | | CHR (13) | Retour à la ligne | | ###### FindStrPos Cette fonction permet de retrouver, à partir d’une position donnée dans la chaîne source, la première occurrence d’une chaîne de caractères. | \*\*Syntaxe\*\* | FindStrPos(ExpStr\_tofind\*\*,\*\*ExpStr\[,Pos]) | | --- | --- | | \*\*Paramètres\*\* | ExpStr\_tofind est la chaîne de caractères recherchée.~~\
\
~~ExpStr est la chaîne de caractères source.~~\
\
~~Pos est une valeur numérique définissant le début de la~~\
\
~~recherche. | | \*\*Commentaires\*\* | - Le résultat est une \*\*valeur numérique\*\* définissant le début de la chaîne de caractères recherchée.~~\
~~- La recherche commence à partir de la position qui suit le paramètre Pos. Si Pos=5, la recherche commence au 6~~<sup>~~ème~~</sup>~~ caractère | | \*\*Exemple\*\* | # recherche la premiere occurrence\~\~\
\
~~Set FindStrPos(“TOTO”,”TATATOTOTITITITOTO”)to Pos~~\
\
~~While (Pos \*\*%<>\*\*0)~~\
\
~~Put “Trouvé en position : ” \*\*+\*\* Pos to…~~\
\
~~# recherche l’occurence suivante~~\
\
~~Set FindStrPos(“TOTO”,”TATATOTOTITITITITOTO”,Pos)~~\
\
~~to Pos EndWhile~~\
\
~~… | ###### GetSubStr Cette fonction permet de récupérer, à partir d’une chaîne source, une chaîne de caractères dont la longueur et la position dans la source sont définies. | \*\*Syntaxe\*\* | GetSubStr(Pos,Len,ExpStr) | | --- | --- | | \*\*Paramètres\*\* | Pos est une valeur numérique définissant la début de la chaîne de caractères recherchée.~~\
\
~~Len est une valeur numérique définissant la taille de la chaîne de caractères recherchée.~~\
\
~~ExpStr est la chaîne de caractères source. | | \*\*Commentaires\*\* | - Si la valeur de Pos est trop élevée ou la valeur de Len négative ou nulle, la chaîne de caractères retournée sera vide.~~\
~~- Si la valeur de Len est trop élevée, une chaîne de caractères~~\
\
~~de taille inférieure à Len peut être renvoyée. | | \*\*Exemples\*\* | GetSubStr(3,3,”CHAINE” )  “AIN” GetSubStr(5,2,”CHAINE”)  “NE” GetSubStr(5,8,”CHAINE”)  “NE” GetSubStr(7,8,”CHAINE”)  “”~~\
\
~~… | ###### DeleteSubStr Cette fonction permet de récupérer, après suppression d’une partie de la chaîne source, une chaîne de caractères résultante. | \*\*Syntaxe\*\* | DeleteSubStr(Pos,Len,ExpStr) | | --- | --- | | \*\*Paramètres\*\* | Pos est une valeur numérique définissant le début de la chaîne de caractères à supprimer.~~\
\
~~Len est une valeur numérique définissant la taille de la chaîne de caractères à supprimer.~~\
\
~~ExpStr est la chaîne de caractères source. | | \*\*Commentaires\*\* | - Si la valeur de Pos est trop élevée ou la valeur de Len négative ou nulle, la chaîne de caractères retournée est la chaîne source.~~\
~~- Si la valeur de Len est trop élevée, une chaîne de caractères~~\
\
~~de taille inférieure à Len est supprimée de la source. | | \*\*Exemples\*\* | DeleteSubStr(3,3,”CHAINE” )  “CHE” DeleteSubStr(5,2,”CHAINE”)  “CHAI” DeleteSubStr(5,8,”CHAINE”)  “CHAI” DeleteSubStr(7,8,”CHAINE”)  “CHAINE”~~\
\
~~… | ###### ReplaceStr Cette fonction permet de remplacer, dans une chaîne de caractères source, une partie de la chaîne de caractères par une autre. | \*\*Syntaxe\*\* | ReplaceStr(ExpStr\_tofind,ExpStr\_toreplace,ExpStr\[,~~\
\
~~Pos\[,toPos]]) | | --- | --- | | \*\*Paramètres\*\* | ExpStr\_tofind est la chaîne de caractères à supprimer. ExpStr\_toreplace est la chaîne de caractères remplaçante. ExpStr est la chaîne de caractères source.~~\
\
~~Pos est une valeur numérique définissant le début de la recherche.~~\
\
~~toPos est une valeur numérique définissant la fin de la~~\
\
~~recherche. | | \*\*Commentaires\*\* | - La chaîne de caractères remplaçante peut être constituée d’un nombre de caractères différent de la chaîne supprimée. | | \*\*Exemples\*\* | ReplaceStr(“TOTO”,”PADDY”,”TATATOTOTITITITOTO”)~~\
\
~~ “TATAPADDYTITITIPADDY”~~\
\
~~ReplaceStr(“TOTO”,”PADDY”,”TATATOTOTITITITITOTO”,9)~~\
\
~~ “TATATOTOTITITIPADDY”~~\
\
~~ReplaceStr(“TOTO”,”PADDY” “TATATOTOTITITITITOTOTATATITITATATITITOTO”,9,36)  “TATATOTOTITITITIPADDYTATATITITATATITITOTO”~~\
\
~~… | ###### ReverseStr Cette fonction permet d’inverser une chaîne de caractères. | \*\*Syntaxe\*\* | ReverseStr(ExpStr) | | --- | --- | | \*\*Paramètres\*\* | ExpStr est la chaîne de caractères. | | \*\*Exemples\*\* | ReverseStr (“PADDY”)  “YDDAP”~~\
\
~~… | ###### GetFieldsCount Cette fonction permet de récupérer le nombre de champs séparés par un caractère de délimitation défini. | \*\*Syntaxe\*\* | GetFieldsCount(Delimit,Quote,ExpStr) | | --- | --- | | \*\*Paramètres\*\* | Delimit représente le caractère de délimitation.~~\
\
~~Quote représente les quotes simples ou doubles gérées par la fonction en tant qu’inhibiteurs.~~\
\
~~ExpStr est la chaîne de caractères. | | \*\*Commentaires\*\* | - S’il n’y a pas de gestion de quote, le paramètre Quote est vide et il n’y a pas d’inhibiteur.~~\
~~- Le paramètre \ placé devant un caractère est utilisé pour interpréter ce dernier en tant qu’inhibiteur et non en tant que début de chaine de caractères. | | \*\*Exemples\*\* | GetFieldsCount(“;”,”\””,”AB;CD;EF”)  3~~\
\
~~GetFieldsCount(“;”,”\””,”AB;CD;\”EF;GH\””)  3~~\
\
~~GetFieldsCount(“;”,””,”AB;CD;\”EF;GH\””)  4~~\
\
~~GetFieldsCount (“;”,”\””,”AB;CD; \”EF\”;\”GH\”” )  4~~\
\
~~GetFieldsCount (“;”,”\””,” ; ; ; ” )  4~~\
\
~~… | ###### GetField Cette fonction permet de récupérer un champ parmi les champs séparés par un caractère de délimitation défini. | \*\*Syntaxe\*\* | GetField(Delimit,Quote,ExpStr,FieldNumber) | | --- | --- | | \*\*Paramètres\*\* | Delimit représente le caractère de délimitation des champs. Quote représente les quotes simples ou doubles gérés par la fonction en tant qu’inhibiteurs.~~\
\
~~ExpStr est la chaîne de caractères.~~\
\
~~FieldNumber représente le numéro de champ recherché. | | \*\*Commentaires\*\* | - S’il n’y a pas de gestion de quote, le paramètre Quote est vide et il n’y a pas d’inhibiteur.~~\
~~- Le paramètre \ placé devant le caractère quote est utilisé pour interpréter ce dernier en tant qu’inhibiteur et non en tant que début de chaine de caractères. | | \*\*Exemples\*\* | GetField(“;”,”\””,”AB;CD;EF”,2 )  “CD”~~\
\
~~GetField(“;”,”\””,”AB;CD; \”EF;GH\””,3)  “EF;GH”~~\
\
~~GetField(“;”,””,”AB;CD; \”EF;GH\””,3)  “”EF”~~\
\
~~GetField(“;”,”\””,”AB;CD;\”EF\”;\”GH\””, 3)  “EF”~~\
\
~~GetField(“;”,”\””,”AB;CD;EF; ” , 4)  “”~~\
\
~~… | ###### XPath (xPathExpStr) \*\*Réservée au mode XML\*\*, cette commande permet de retrouver la liste des éléments satisfaisant à la requête définie par l’expression xPathExpStr. | \*\*Syntaxe\*\* | \*\*XPath\*\* (xPathExpStr) | | --- | --- | | \*\*Paramètres\*\* | xPathExpStr représente le “chemin” de la requête | | \*\*Commentaires\*\* | Si le résultat est constitué de plusieurs éléments, les réponses sont concaténées | | \*\*Exemple\*\* |~~\
\
\
\
\
\
~~Le rayon vert~~\
\
\
\
~~Jules~~\
\
~~Vernes~~\
\
\
\
\
\
\
\
~~XPath (“/bookstore/book/author”) renvoie~~\
\
\
\
~~Jules~~\
\
~~Vernes~~\
\
~~|~~**XPath (xPathExpStr, nodeExpStr)**~~**Réservée au mode XML**, cette commande permet de retrouver la liste des éléments satisfaisant à la requête définie par l’expression xPathExpStr, la recherche étant effectuée sur le nœud défini par l’expression nodeExpStr.Cette commande, en ne prenant en compte que des parties de document, permet d’optimiser le traitement.~~**XPath (…)\[i]**~~**Réservée au mode XML**, cette commande permet de retrouver l’élément d’indice i dans la liste d’éléments satisfaisant à la requête définie par l’expression xPathExpStr.~~**XPath (…).Count**~~**Réservée au mode XML**, cette commande permet de retrouver le nombre d’éléments satisfaisant à la requête définie par l’expression xPathExpStr.~~**XPath (…).Value**~~**Réservée au mode XML**, cette commande permet de retrouver la valeur des éléments ou, de l’élément d’indice i satisfaisant à la requête définie par l’expression xPathExpStr.(1) les paramètres nodeExpStr et \[i] sont encadrés par des crochets de couleur rouge \[ ], ce qui signifie qu’ils sont optionnels.~~**XPath (…).Name**~~**Réservée au mode XML**, cette commande permet de retrouver le nom des éléments ou, de l’élément d’indice i satisfaisant à la requête définie par l’expression xPathExpStr.(1) les paramètres nodeExpStr et \[i] sont encadrés par des crochets de couleur rouge \[ ], ce qui signifie qu’ils sont optionnels.~~**XPath (…).Path**~~**Réservée au mode XML**, cette commande permet de retrouver le chemin du ou des éléments satisfaisant à la requête définie par l’expression xPathExpStr.Le résultat peut être réutilisé comme premier paramètre de la fonction XPath.(1) les paramètres nodeExpStr et \[i] sont encadrés par des crochets de couleur rouge \[ ], ce qui signifie qu’ils sont optionnels.~~**XPath (…).ExactPath**~~**Réservée au mode XML**, cette commande permet de retrouver le chemin exact, c’est à dire avec indiçage, du ou des éléments satisfaisant à la requête définie par l’expression xPathExpStr.Le résultat peut être réutilisé comme premier paramètre de la fonction XPath.les paramètres nodeExpStr et \[i] sont encadrés par des crochets de couleur rouge \[ ], ce qui signifie qu’ils sont optionnels.COMMENTAIRESCOMMENTAIRES~~**Définition du commentaire**~~Il existe deux types de commentaires :les commentaires automatiquement générés par StarJet-Design,les commentaires rattachés aux objets.~~**Commentaires générés par StarJet Design**~~Ces commentaires sont préfixés par le symbole dièse (#). Ils ne sont pas mémorisés par StarJet-Design même si ce logiciel en génère automatiquement un certain nombre.☼ Exemple d’un fichier .sp. Les commentaires générés par StarJet-Design sont encadrés.Capture d’écran manquante (image supprimée de la documentation source d’origine).~~**Commentaires rattachés aux objets**~~Ces commentaires sont préfixés par un double slash (//) et rattachés à l’objet localisé sur la ligne suivante.Ces commentaires sont saisis par le développeur du projet dans l’onglet Commentaires de la boîte de dialogue StarJet-Design permettant de modifier les paramètres de(s) objet(s) sélectionné(s).☼ Exemple : “Ceci est un commentaire” est saisi dans la boîte de paramétrage d’un Block. La ligne de commentaire est alors générée dans le fichier .sp et précède la commande de copie de ce bloc de données.Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).FONCTIONS OBSOLETESFONCTIONS OBSOLETES~~**Include Rest**~~**Réservée au mode ASCII,** cette commande permet d’inclure le reste de la page.~~**Text**~~Cette commande permet de définir la police de caractères à utiliser par défaut.~~**VerticalSpacing**~~Cette commande est une option de positionnement liée à la commande Include Rest.~~**Left-Margin**~~Cette commande positionne une marge gauche.~~**MultiDuplex**~~Cette commande permet de définir du Recto-Verso pour l’émulation de liasse.~~**MultiOutbin**~~Cette commande permet de définir le bac de sortie pour l’émulation de liasse.~~**MultiTray**~~Cette commande permet de définir le bac d’alimentation pour l’émulation de liasse.~~**Use Multipart**~~Cette commande permet de demander le lancement de l’émulation de liasse.CODES RETOURCapture d’écran manquante (image supprimée de la documentation source d’origine).**STARPAGE /MANUEL DE REFERENCECODES RETOUR**LIMITATIONSCapture d’écran manquante (image supprimée de la documentation source d’origine).**STARPAGE /MANUEL DE REFERENCE**LIMITATIONSLes limites actuelles de StarPage sont les suivantes :16384 actions (move, copy, erase, put, etc…)1024 conditions512 Layouts ou macros25 éléments par liasse (obsolète)2048 variables.une commande StarPage ne peut avoir comme résultat plus de 8 ko, ce nombre correspondant à la limitation des buffers de StarJet. Cependant, il n’y a pas de limite dans la taille d’une ligne de données à traiter.L’OptionDOC de StarPage à également certaines limitations et ne supporte pas le éléments suivant :les rotations à 180°les logos ou polices téléchargeables **.sfp** (seul le format TIFF est supporté)les codes à barres basés sur des polices téléchargeables **.sfp** (2D, Datamatrix, pdf417)le format **Unicode** (UTF-8)**INFORMATIONS SUPPLEMENTAIRES**INFORMATIONS SUPPLEMENTAIRES~~**Installation**~~En ce qui concerne l’installation et le lancement de StarPage, se référer à la documentation propre à chaque plate-forme (Unix, MPE, VMS, Winnt).~~**Recommandations concernant l’impression de fichiers PDF**~~Lors de l’impression de fichiers pdf générés par StarPage et, pour éviter les soucis d’impression, décocher les options **Ajuster les grandes pages** et **Ajuster les petites pages** (cf ci-dessous).Capture d’écran manquante (image supprimée de la documentation source d’origine).~~**Fichier LOG**~~Un sous répertoire LogFiles, localisé dans C:\StarJet est créé à l’installation. A l’intérieur de ce dernier, un second sous-répertoire est créé pour chaque produit dans lequel cette option est implémentée. Il contient le fichier log, fichier texte comprenant les messages d’erreur générés par l’application, informations indispensables à analyser en cas d’erreur.ANNEXES**SCHÉMA DE FONCTIONNEMENT DU LOGICIEL STARPAGE**StarPageFichier de donnéesFichiers de données spécifiés sur la ligne de commande : **FFF**FluxPost-traitement StarPage pour PCL (et PDF) ?OUIlégendes:**FFF** est le nom du fichier **PPP** est le nom de l’imprimanteGestion des flux et options de lignes de commandesPré-traitement StarPageFichier SPOPTION :Windows: **/cFFF**Unix: **-cFFF**Fichiers des logos SFPFichier SJPTraitement StarJetNONCapture d’écran manquante (image supprimée de la documentation source d’origine).Utiliser le SPOOLER ?NONFichier PDFOUIDocument impriméCapture d’écran manquante (image supprimée de la documentation source d’origine).WorkstreamOPTIONS :Windows : **/dFile=FFF**with **/ m:pdf**Unix : **-dfile=FFF** with **-m:pdf**OPTIONS :Windows: **/d”PPP”**&#x55;nix: **-dPPP**OPTIONS :Windows: **/xFFF**Unix: **-xFFFII-**~~ ~~**CODES À BARRESIII- OPTIONS DE GÉNÉRATION DE FICHIERS PDF**~~**Options générales**~~**Informations sur le document PDF**~~**Cryptage et permissions d’accès au document PDF**~~**Options obligatoires**Ces options sont placés dans les registres sous Windows dans le répertoire suivant :\[HKEY\_LOCAL\_MACHINE\SOFTWARE\Appic\common\StarJet\PDF options] “-ra”=”Option StarJet PCL ”“-DIA:StarPage”=”Nom de l’auteur du document”“-csize”=”Compression du résultat”“-DIC:Solution StarJet”=”Nom du créateur du document” “-DIK:”=”Liste de mot-clefs”“-DIS:”=”Sujet du document”“-bm:0″=”Option StarJet PCL (gestion de la marge)” “-DIT:”=”Titre du document”Dans cet exemple, la génération PDF prend les options :-ra -DIA:StarPage -csize -DIC:”Solution StarJet” -DIK: -DIS: -bm:0 -DIT:Capture d’écran manquante (image supprimée de la documentation source d’origine).de commentaires.Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).**du mode recto-verso n’est pas prise en compte**~~<sup>~~®®~~</sup>~~**IV- OPTIONS POUR LIGNES DE COMMANDES SOUS WINDOWS**Cf les manuels spécifiques aux différentes plateformes (Windows, Unix, VMS et MPE) pour les options de lignes de commande.**V- COMMANDES STARJET**L’ensemble des commandes StarJet doit commencer par un caractère appelé préfixe situé en colonne 1.Ce préfixe est, par défaut, la barre de fraction “**/**“.Il est possible (voir commande **/PREFIX)** de modifier ce caractère de préfixe afin de l’adapter à vos besoins spécifiques.Capture d’écran manquante (image supprimée de la documentation source d’origine).La description syntaxique des commandes obéit aux règles suivantes :**\<paramètre>** Indique un paramètre requi&#x73;**\[…]** Indique une option**opt1|opt2** Indique des options exclusives. L’une ou l’autre peuvent être utilisées, mais jamais les deux à la fois**option** Indique une option par défaut**MOT-CLE** Indique un mot cl&#xE9;***/ACTIVATE-OVERLAY***&#x50;our activer un fond de page déjà chargé dans la mémoire de l’imprimante (abr./AO)Syntaxe/ACTIVATE-OVERLAYParamètre**overlay** Numéro logique de la forme devant être réactivée.DescriptionCette commande vous permet de réactiver une forme qui aurait été préalablement chargée dans la mémoire de l’imprimante (voir command&#x65;**/OVERLAY** plus loin).Cette fonctionnalité peut être fort utile pour éviter les transmissions induites par le chargement répétitif d’une forme couramment utilisée sur une imprimante donnée. Par exemple, vous pouvez définir deux fonds de page “papier en-tête de lettre” et “facture” portant respectivement les numéros logiques 1 et 2 dans un fichier d’environnement.Chaque matin, une procédure envoie sur l’imprimante cible ce fichier contenant les deux fonds de page. Au cours de la journée, lorsqu’une application doit imprimer une facture, il suffit d’utiliser un fichier d’environnement très court contenant la commande **/ACTIVATE-OVERLAY 2**.Si vous chargez dans la mémoire de l’imprimante une autre forme portant le numéro logique 2, le fond de page “facture” est alors écrasé.Capture d’écran manquante (image supprimée de la documentation source d’origine).**/CHAR**En cas de coupure de l’alimentation électrique de l’imprimante, ou si quelqu’un en coupe la tension, les formes résidant dans sa mémoire sontdétruites et doivent de ce fait être chargées de nouveau.Exempl&#x65;**/PORTRAIT LETTER/CHAR 1 LP120RRP/ACTIVATE-OVERLAY 2/TEXT 1 0 0**Lors de l’interprétation de ce fichier de commandes, la police de caractères LP120RRP sera chargée, le fond de page numéro 2, précédemment téléchargé, sera réactivé, puis la police LP120RRP sera activée pour les données après positionnement du curseur en début de page.~~**/BOX**~~Pour définir une boite (cadre) (abr. /B)Syntaxe/B\[SHADE=\<grisé>]|\[PATTERN=] \[OPENED=UP|DOWN|LEFT|RIGHT]Paramètres**epais** Epaisseur de la ligne (entre 1 et 9).**x1** Distance entre le coin supérieur gauche et la marge gauche en points**y1** Distance entre le coin supérieur gauche et le haut de la page en points**x2** Distance entre le coin inférieur droit et la marge gauche en points**y2** Distance entre le coin inférieur droit et le haut de la page en points\*\*.\*\***SHADE** Mot clé demandant que cette boite soit grisée**grisé** Tonalité de grisé pour l’intérieur de la boîte (valeur 1 à 8)**PATTERN** Mot clé demandant que cette boite soit hachurée**hachure** Type de quadrillage pour l’intérieur de la boîte (valeur 1 à 6)**OPENED** Mot clé demandant que ce cadre reste ouvert sur un côté défini par les valeurs UP, DOWN, LEFT ou RIGHTCommentairesCette commande génère le tracé d’un rectangle, d’un cadre. Ce cadre sera tracé par une ligne d’épaisseur **<épaisseur>**, le coin supérieur gauche se trouvant e&#x6E;**:** et le coin opposé inférieur droit en **:**. Les indications de grisé ou de hachurage utilisent les mêmes valeurs que celles définies pour les commandes **/SHADE** et **/PATTERN**.Exempl&#x65;**/PORTRAIT A4/OVERLAY 1/BOX 1 100 100 2200 3200/B 15 2000 3100 2200 3200 SHADE=2/OVERLAY 0**Deux boîtes sont demandées dans cet exemple :une première, très fine (épaisse d’un point) encadre la majeure partie de la pageune seconde plus épaisse (quinze points) encadre, au sein de la première boîte, une zone située dans la partie inférieure gauche de la page. L’intérieur en sera grisé.~~**/CHAR**~~Pour charger une police de caractères et lui assigner un numéro logique (abr./C)Capture d’écran manquante (image supprimée de la documentation source d’origine).Syntaxe/CHAR \<numéro>\[INTERNAL|PERMANENT|TEMP|ASCII|ARABIC]Paramètres**numéro** Numéro logique attribué à la police pour la suite du traitement**nom-police** Nom de la police de caractères tel que défini dans le paragraphe commentaires**INTERNAL** Mot clé demandant à StarJet d’activer soit une police interne à la LaserJet soit une police d’une cartouche enfichée dans la LaserJet**PERMANENT** Mot clé indiquant que cette police de caractères doit être permanente dans la mémoire de l’imprimante**TEMP** Mot clé indiquant que cette police de caractères doit être temporaire dans la mémoire de l’imprimante**ASCII** Permet dans l’overlay et le layout de convertir les chaînes UTF- 8 en ascii afin d’imprimer correctement**ARABIC** A utiliser uniquement avec les polices arabes NK*xxxxx*.sfp. Permet d’informer Starjet que l’on va écrire de l’arabe dans l’overlay et qu’il faut appeler sjreverse pour traiter la chaîne (ASCII ou UTF-8)Commentaires~~**Cette commande permet soit de télécharger et d’activer une police de caractères (cas d’une police téléchargeable) soit d’activer une police interne de l’imprimante.**~~**Numéro** permet d’attribuer un numéro logique à la police, numéro sous lequel cette police sera reconnue tant par StarJet que dans la mémoire de l’imprimante. Ce numéro doit être un entier situé entre les valeurs 1 et 32767.**Nom-police** indique le nom de la police de caractères concernée. Ce nom peut être fourni de deux manières différentes: par un nom de police ou par une séquence d’échappement.~~**Ce nom doit obéir à une syntaxe précise :**~~2 caractères définissent le type de caractère :**HV** pour Helvetica (Espacement proportionnel)**TR** pour Times Roman (Espacement proportionnel)**LP** pour Line Printer (Espacement Fixe)**LG** pour Letter Gothic (Espacement Fixe)**CR** pour Courrier (Espacement Fixe)**PR** pour Prestige (Espacement Fixe)**CG** pour CG Times (Espacement proportionnel)**UN** pour Univers (Espacement proportionnel)3 chiffres définissent la taille de la police :**240** pour une police de corps 241 lettre définit le style :**B** pour Bold (caractère gras)**I** pour Italique**R** pour Regular (caractère normal)1 lettre définit la codification utilisée:**R** pour Roman 8 (caractères standards HP\*\*)\*\***E** pour ECMA-94 (caractères standards DEC)**L** pour Line Draw1 lettre pour définir l’orientation de la police :**L** pour Landscape**P** pour portrait**HV240BRP** pour une police Helvetica corps 24 gras Roman8 Portrait **LP120RRP** pour une police Line Printer corps 12 normal Roman8 Portrait **TR180IRL** pour une police Times Roman corps 18 Italique Roman8 Landscape**UN265BRP** pour une police Univers corps 26,5 Gras Roman8 Portrait.Capture d’écran manquante (image supprimée de la documentation source d’origine).Dans le cas d’une police de caractères à télécharger, ce nom doit correspondre à un fichier existant sur le système.Pour activer une police interne à l’imprimante ou dans une cartouche, il est également possible d’entrer la séquence d’échappement correspondant à la police de caractère visée telle qu’elle est définie dans la Font List imprimée par la LaserJet lors de l’enfoncement de la touche “**Print Fonts**“.Dans ce cas, les caractères doivent être remplacés par des Tildes ‘**\~**‘.Certaines polices sont dites à espacement fixe : chacun des caractères qui la composent occupent la même place sur une ligne. D’autres sont à espacement proportionnel : chaque caractère occupe une place qui lui correspond en propre. Les polices Helvetica, Times Roman, CG Times, Univers sont typiquement des polices proportionnelles. Les polices Courrier, Line Printer, Prestige sont en revanche des polices à espacement fixe.Si le mot clé **INTERNAL** n’est pas fourni, un nom est obligatoire et doit être celui d’un fichier existant sur le système.Si le mot clé **INTERNAL** est indiqué, ce nom, correspondant ou non à un fichier existant sur le système, permettra à StarJet de générer la séquence d’échappement nécessaire pour retrouver la police correspondant à ce nom au sein de la mémoire de l’imprimante.**INTERNAL** est un mot clé qui indique à StarJet qu’il doit attribuer le numéro\<numéro> à une police interne de la LaserJet. Cette police peut être soit livrée avec l’imprimante, soit résidante dans une cartouche enfichée dans l’imprimante.Exempl&#x65;**/PORTRAIT A4 MAXLINES=50/CHAR 1 HV240BRP/C 2 LP120RRP INTERNAL/C 3 TR140BRP/C 4 (8U(s0p16.67h8.5v0s0b0T/C 5 UN180BRP INTERNAL**Cette suite de commandes demande le montage de papier A4, l’impression se faisant dans le sens vertical de la page, puis la définition de quatre polices de caractères pour un usage ultérieur.La première porte le numéro logique 1, est une police Helvetica taille 24, Bold, Roman8, Portrait. Elle doit être téléchargée.La seconde est une police Line Printer de taille 12, Roman8, normale, Portrait. Elle est interne à la LaserJet ou sur une cartouche.La troisième est une police Times Roman de taille 14, Bold, Roman8, Portrait. Elle doit être entièrement téléchargée.La police numéro 4 est une police interne appelée par la séquence d’échappement telle qu’elle est définie dans la Font List imprimée par la LaserJet lors de l’enfoncement de la touche “**Print Fonts**“.La police numéro 5 est une police Univers de taille 18, Bold, Roman8, Portrait. Elle est interne à la mémoire de l’imprimante.Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).peuvent utilisées grâce au mot clé INTERNAL.Demande d’ajustement des éléments à la taille de la page.Syntaxe/CLIPParamètres**Aucun**CommentairesLes éléments constitutifs d’un fond de page peuvent être automatiquement ajustés à la taille maximum de la page sur laquelle ils doivent être imprimés.Ainsi, si une ligne verticale voit sa fin positionnée au-delà de la limite de la page, StarJet ajuste ce point final à la limite maximale de la page. Cette fonctionnalité est particulièrement utile pour éviter des effets indésirables lors de l’impression.Par défaut, un tel ajustement génère automatiquement un message de type Warning indiquant la commande sur laquelle est rencontrée le débordement.L’utilisation de la commande **/NOCLIP** permet de supprimer les messages de ce type.Permet d’indiquer la couleur d’un objet boîte, texte, logo ou ligne horizontale / verticale.Syntaxe/COLORParamètres**RGB** Valeurs correspondant à l’intensité de chaque couleur primaire Rouge, Vert et Bleu, chaque valeur étant située entre 0 et 255 (intensité maximale = 255).CommentairesLa couleur par défaut est noire (/color 0 0 0).Tous les objets placés après une commande /color prennent la couleur indiquée par les proportions de Rouge, Vert et Bleu.Exempl&#x65;**/Color 0 255 0/Text 15 941 200 FACTURE/Color 0 0 0**Cette commande permet d’afficher le libellé FACTURE en vert.**/Color 0 0 0** permet de redonner la couleur par défaut (noire) aux objets suivants.Demande l’impression de plusieurs copies de chaque page (abr. /N)Syntaxe/COPIESParamètres**copies** Valeur numérique située entre 1 et 99CommentairesCette commande permet de demander à l’imprimante de générer plusieurs copies de chaque page. Ces copies sont effectuées de manière locale, c’est à dire qu’elles ne requièrent pas l’intervention du CPU. Les copies font faites une derrière l’autre : par exemple 3 copies de la page 1, suivies de 3 copies de la page 2, etc…Exempl&#x65;**/PORTRAIT A4 MAXLINES=50/COPIES 3**Ces commandes demandent le montage de papier A4, l’impression se faisant dans le sens vertical de la page. Pour chaque page, 3 copies sont demandées.Capture d’écran manquante (image supprimée de la documentation source d’origine).Le transfert des données ne se fait qu’une fois, quelque soit le nombre de copies demandées.Indique la densité des caractères (abr. /D).Syntaxe/DENSITYParamètres**car-pouce** Nombre de caractères par pouce. Nombre réel jusqu’à 4 décimalesCommentairesCette commande permet d’influer sur la densité des caractères de la police active lors de l’impression.Si la police active lors de l’émission de cette commande est un police de type fixe, tous les caractères sont affectés par la densité indiquée.Si la police est de type proportionnelle, seul le caractère Espace est affecté par cette commande.Cette densité n’est effective que tant que la police est active.Le nombre de caractères par pouce peut contenir jusqu’à 4 décimales afin de permettre un ajustement précis de l’impression des données.Exemple&#x73;**/PORTRAIT A4/CHAR 1 LP120RRP/TEXT 1/DENSITY 16.66**Texte imprimé en utilisant la police 1 condensée.**/TEXT 1**Texte imprimé en utilisant la police 1 normale.Demande l’activation ou la désactivation du mode Recto-Verso (abr. /R)Syntaxe/DUPLEXParamètres**mode** Valeur 0, 1 ou 2CommentairesLa valeur 0 invalide le mode Recto-Verso.La valeur 1 active le mode Recto-Verso horizontal. C’est celui généralement utilisé avec l’orientation Landscape.La valeur 2 active le mode Recto-Verso vertical. C’est celui généralement utilisé avec l’orientation Portrait.Exempl&#x65;**/PORTRAIT A4/DUPLEX 2/FRAME 15 SHADE=2**Ces commandes demandent le montage de papier A4, l’impression se faisant dans le sens vertical de la page. Sur chaque page sera imprimé un cadre grisé non jointif de 15 points d’épaisseur, en gris très pâle (10 % de noir). L’impression sera effectuée en Recto-Verso.Capture d’écran manquante (image supprimée de la documentation source d’origine).Affichage d’un messageSyntaxe/ECHOParamètres**Texte** Texte libreCommentairesCette commande provoque l’affichage du texteExempl&#x65;**/LANDSCAPE A4/BOX 1 100 100 200 200/LIST/VERTICAL 12 150 100 200/NOLIST/ECHO Fin de l’affichage des commandes/HORIZONTAL 5 100 150 200**La lecture, par StarJet, de ce fichier de commandes appelé **TEST** dans cet exemple génère l’affichage suivant :*#starjetStarJet / Unix Version 3.0Copyright (c) APPIC, 1990Enter command filename:*~~ ~~**TEST***3: /LIST4: /VERTICAL 12 150 100 2005: /NOLISTFin de l’affichage des commandesInput Lines : 7 Total Warnings : 0Total Errors : 0 Bytes Written : 253#*&#x44;emande l’affichage de tous les messages en langue anglaise.Syntaxe/ENGLISHParamètresAucunCommentairesCette commande permet d’obtenir les messages de StarJet en anglais.Capture d’écran manquante (image supprimée de la documentation source d’origine).Demande l’exécution d’un OverlaySyntaxe/EXECUTE-OVERLAYParamètres**Overlay** Numéro de l’Overlay à exécuterCommentairesCette commande provoque l’exécution d’un Overlay préalablement chargé dans la mémoire de l’imprimante. Cette exécution n’a pas de caractère répétitif, contrairement à la commande **/ACTIVATE-OVERLAY**.Son aspect ponctuel est particulièrement utile lors de l’utilisation dynamique de StarJet.Il est bien entendu inutile d’appeler cette commande lorsque l’Overlay demandé est celui qui est par défaut automatiquement actif dans la mémoire de l’imprimante.Exempl&#x65;**/EXECUTE-OVERLAY 1**Met fin à l’exécution de StarJet.Syntaxe/EXITParamètresAucunCommentairesCette commande met fin à l’exécution de StarJet.Positionnement du curseur de l’imprimante en haut de la page logique en cours.Syntax&#x65;**/FIRSTLINE**ParamètresAucunCommentairesCette commande permet de positionner le curseur en haut de la page, en tenant compte des marges hautes et gauches précédemment définies.Ces marges sont en particulier définies par les commandes **/LEFT-MARGIN**(marge gauche) et **/PORTRAIT** ou **/LANDSCAPE** (marge haute).Elles peuvent également être générées par StarJet lors de l’utilisation de plusieurs pages logiques par page physique.Capture d’écran manquante (image supprimée de la documentation source d’origine).Cette commande peut permettre d’obtenir précisément le même alignement sur la première page (logique ou physique) que sur les pagessuivantes.Exempl&#x65;**/PORTRAIT A4 MAXLINE=50 TOP= 5/CHAR 1 LP080RRP/DENSITY 21.5/LEFT-MARGIN 4/FIRSTLINE**Après exécution de ces commandes, le curseur se trouve positionné en colonne 4 et en ligne 5, c’est à dire en haut à gauche de l’espace logique défini./FRAME\[SHADE=\<grisé>]|\[PATTERN=]Paramètres**points** Epaisseur en points de l’encadrement**SHADE** Mot clé demandant que cette boite soit grisée**grisé** Tonalité de grisé pour l’intérieur de la boîte (valeur 1 à 8)**PATTERN** Mot clé demandant que cette boite soit hachurée**hachure** Type de quadrillage pour l’intérieur de la boîte (valeur 1 à 6)CommentairesCette commande demande à StarJet d’imprimer un cadre sur le pourtour de la page.Celui-ci peut être un trait noir d’épaisseur (défaut).Toutefois, si l’un des mots clés **PATTERN** ou **SHADE** est spécifié, accompagné d’une valeur telle que définie pour les commandes **/SHADE** ou **/PATTERN**, ce cadre sera grisé ou tramé.Exempl&#x65;**/PORTRAIT A4/FRAME 15 SHADE=1**Ces commandes demandent le montage de papier A4, l’impression se faisant dans le sens vertical de la page. Sur chaque page sera imprimé un cadre grisé de 15 points d’épaisseur, en gris très pâle (10 % de noir).Capture d’écran manquante (image supprimée de la documentation source d’origine).ou /LANDSCAPE./FRANCAISParamètresAucunCommentairesCette commande permet d’obtenir les messages de StarJet en français.Capture d’écran manquante (image supprimée de la documentation source d’origine).Impression d’une grille Haute Définition.Syntaxe/GRIDParamètresaucunCommentairesCette commande a pour but d’imprimer une grille Haute Définition sur la page logique en cours.Cette grille comporte une ligne fine horizontale et verticale tous les 20 points, une ligne plus épaisse tous les 100 points, ainsi que l’impression des abscisses et ordonnées tous les 100 points.Capture d’écran manquante (image supprimée de la documentation source d’origine).Exemple&#x73;**/PORTRAIT A4/GRID**Ces commandes demandent l’impression d’une grille sur une page A4 en orientation Portrait.**/LANDSCAPE A4/OVERLAY 1/GRID/OVERLAY 0**Cette séquence autorise l’impression d’une grille en orientation Landscape au sein d’un Overlay. Cette pratique peut être utile pour obtenir précisément sur la page les coordonnées des informations contenues sur les différentes pages d’un état.Impression d’une ligne horizontale (abréviation: /H).Syntax&#x65;**/HORIZONTAL <épaisseur>***Paramètres***épaisseur** Epaisseur du trait (en points)**x1** Origine en partant de la gauche de la page**y1** Origine en partant du haut de la page**x2** Fin de la ligne en partant de la gauche de la pageCommentairesUne ligne horizontale dont le trait est d’épaisseur **<épaisseur>** est tracée entre le point de départ à gauche de coordonnées **:** et le point d’arrivée à droite de coordonnées **:**.Capture d’écran manquante (image supprimée de la documentation source d’origine).Les coordonnées sont limitées à la page logique sur laquelle cette commande s’applique (voir commande /CLIP).Exempl&#x65;**/LANDSCAPE A4/OVERLAY 1/HORIZONTAL 1 100 100 3200/H 10 2000 2000 3200/OVERLAY 0**Deux lignes horizontales sont demandées dans cet exemple :une première, fine, sur presque toute la largeur de la partie supérieure de la pageune seconde, épaisse de 10 points se situe dans la partie inférieure de la page. Ces deux lignes horizontales sont dessinées à l’intérieur d’un Overlay.Inclusion d’une source extérieure de données ou de commandes (Abr. : /INC).Syntaxe/INCLUDE*Commentaires*Cette commande permet d’inclure:des fichiers plats contenant sources ou donnéesdes fichiers de commandes StarJetdes fichiers spool de sortieExemple&#x73;**/PORTRAIT A4/INCLUDE GENFONTS/TEXT 4 100 100 ….**&#x43;et exemple illustre comment, au sein d’un fichier de commandes StarJet, exploiter un autre fichier de commandes StarJet préalablement défini.Le fichier **GENFONTS** peut par exemple contenir la définition de quelques polices de caractères, dont l’une porterait le numéro logique 4, numéro logique utilisé dans la commande suivant immédiatement la commande **/INCLUDE** dans cet exemple.**/PORTRAIT A4/CHAR 1 LP120RRP/INCLUDE DATAFILE**Cet exemple demande l’impression du fichier de données **DATAFILE.**&#x50;our sélectionner un bac d’alimentation papier de l’imprimante.Syntaxe/INTRAY*Paramètre***bac** Numéro du bac d’alimentation papier 0: Sélection du bac courant1: Sélection du bac supérieur 2: Sélection du mode manuel3: Sélection du bac supérieur avec alimentation manuelle 4: Sélection du bac inférieur6: Sélection du magasin d’alimentation à enveloppesCommentairesIl est conseillé de mettre cette commande avant la commande de sélection de format du papier.En cas de rupture de papier, l’imprimante sélectionnera un autre bac d’alimentation disponible.En mode manuel, le voyant **MANUAL** s’allume. Pour utiliser cette option, il faut utiliser l’alimentation manuelle fournie avec l’imprimante. Lorsque les données provenant du système arrivent, le message **EF FEED** … s’affiche.Il faut alors ajuster les guides d’alimentation manuelle à la largeur du support que vous allez utiliser et insérer la feuille dans la cassette de papier entre les guides d’alimentation manuelle. L’imprimante se met alors en ligne et imprime. Si le travail d’impression comprend plusieurs pages, attendez que le message **PP FEED** … soit affiché avant d’insérer la feuille suivante.Exemple**INTRAY 1/CHAR 1 LP120RRP/0VERLAY 1**\**/Description de la forme***/OVERLAY 0**~~**/JUSTIFY**~~Cette commande permet de justifier (aligner à la fois à gauche et à droite) le texte d’un paragraphe.Syntaxe/JUSTIFY< Chaîne libre>Paramètres**font-number** Numéro attribué à la police**Xstart** Origine en partant de la gauche de la page**Ystart** Origine en partant du haut de la page**Xend** Fin de la ligne en partant de la gauche de la page**LineSpacing** Valeur de l’espace interligne si le texte saisi porte sur plusieurs lignes**TypeJust** Valeur entière précisant le type de justification1=justification (toutes les lignes, sauf la dernière, ont la même longueur)2=alignement à gauche (toutes les lignes démarrent à la même coordonnée X)3=alignement à droite (toutes les lignes finissent à la même coordonnée X)4=centrer (le milieu de toutes les lignes est placé sur la même coordonnée X)**RotationText** Définit une rotation exprimée en degrés, dans le sens des aiguilles d’une montre. Les valeurs sont 0, 90, 180 ou 270.**Chaîne libre** Chaîne de caractères à imprimer. Elle peut contenir des espaces.Exempl&#x65;**/Justify 8 2030 510 2530 50 1 0 Cette commande est utilisée pour justifier un texte.**~~**/LANDSCAPE**~~Définition du format du papier et du sens d’impression.Syntaxe/LANDSCAPE \[ | SIZE= BY ] \[CONTINUE]\[MAXLINES=]\[FORMAT= BY \[ACROSS|DOWN]]\[TOP=]*Paramètres***page-phy** Définit le format physique de la feuille.Valeurs supportées :A4 A3EXECUTIVE LETTER LEDGER LEGAL MONARCHCOMMERCIAL-10 ou COM-10 INTERNATIONAL-DL ou DL INTERNATIONAL-C5 ou C5**SIZE** Permet de définir le format de papier lors de l’utilisation de papier continu (HP5000/F100 ou F135).Taille en inch du papier sur l’axe des X.**BY** Mot clé indispensable pour séparer les valeurs en inch associées au mot clé SIZE.Taille en inch du papier sur l’axe des Y.**CONTINUE** Mot clé destiné aux imprimantes HP5000 F100 (papier continu)**lignes** Nombre de lignes par page logique**FORMAT** Mot clé demandant l’impression de plusieurs pages logiques par page physique**pgx** Nombre de pages logiques par page physique (horizontalement)Défaut = 1**pgy** Nombre de pages logiques par page physique (verticalement) Défaut = 1**ACROSS** Mot clé demandant le déplacement latéral des pages logiques **DOWN** Mot clé demandant le déplacement vertical des pages logiques **TOP** Mot clé permettant d’influer sur la marge haute – optionnel **marge** Nombre de lignes nécessaires pour la marge haute – optionnelCommentairesCette commande doit impérativement être la première des commandes.Elle permet de définir la page physique (A4, A3, etc…), le nombre maximum de lignes devant être imprimées par page ainsi que le nombre et la disposition des éventuelles pages logiques par page physique.Le choix de la commande **/LANDSCAPE** dicte le sens de l’impression :**/LANDSCAPE** définit une impression horizontale, comme un listing classique.Capture d’écran manquante (image supprimée de la documentation source d’origine)./PORTRAIT.Le mot clé **CONTINUE** indique à StarJet que l’impression se fera sur une imprimante en continu (HP5000 modèle F100 par exemple). Ceci permet à StarJet de savoir que la “non printable area” est nulle, et donc influencera les limites adressables de la page.Si plusieurs pages logiques sont définies par page physique, il est possible de demander soit que les pages soient imprimées colonne par colonne (**DOWN**), soit rangée par rangée (**ACROSS**). **ACROSS** est le défaut.Le mot clé **TOP**, accompagné d’une valeur, indique le nombre de lignes devant être réservées comme marge haute du document.Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).Exempl&#x65;**/LANDSCAPE A3 FORMAT=4 BY 3 DOWN**Le papier utilisé est de format A3 et l’impression est en landscape, c’est à dire que le lecteur devra tenir sa feuille horizontalement.Cette commande informe également StarJet que vous désirez voir imprimées 12 pages logiques par page physique, à savoir 4 pages dans le sens de la largeur et 3 dans le sens de la hauteur.La présence du mot-clé **DOWN** demande l’incrémentation des pages verticalement. En voici l’illustration :Capture d’écran manquante (image supprimée de la documentation source d’origine).en “page protect mode”. Il est probable que certaines imprimantes de la gamme LaserJet ne supportent pas cette fonctionnalité.Positionne une marge gauche.Syntaxe/LEFT-MARGINParamètres**colonnes** Nombre de colonnes devant constituer la marge gaucheCommentairesCette commande permet de positionner une marge gauche.Cette marge, exprimée en nombre de caractères, est positionnée en fonction de la police de caractère active lors de son utilisation, ainsi que de la densité définie à cet instant.Exempl&#x65;**/LANDSCAPE A4/CHAR LP120RRP INTERNAL/TEXT 1/DENSITY 20/LEFT-MARGIN 10Ligne données 1Ligne données 2**Les données imprimées après émission de la commande **/LETMARGIN** seront calées à 10 colonnes à gauche du point 0, en tenant compte de la densité de 20 caractères par pouce préalablement définie. C’est à dire que la marge gauche sera de un demi pouce par rapport au point 0.Produit l’affichage des commandes pendant l’exécution.Syntaxe/LIST*Paramètres*AucunCommentairesDès lecture de cette commande, StarJet affiche, pour chaque commande lue le numéro des commandes suivi des commandes elles-mêmes.Exempl&#x65;**/LANDSCAPE A4/BOX 1 100 100 200 200/LIST/VERTICAL 12 150 100 200**La lecture par StarJet, de ce fichier de commandes (appelé **TEST** dans cet exemple) génère l’affichage suivant :#starjetStarJet/Unix Version 3.0 Command File : TESTCopyright (c) APPIC, 19903: /LIST4: /VERTICAL 12 150 100 200Input LinesTotal Warnings : 0: 4Total Errors : 0 Bytes Written : 253Capture d’écran manquante (image supprimée de la documentation source d’origine).Passage du mode PCL à un autre mode et vice-versa.Syntaxe/MODE \[PCL|HPGL]*Paramètres***PCL** Mot clé permettant de passer en mode PCL**HPGL** Mot clé permettant de passer en mode HPGLCommentairesCette commande permet d’inclure, outre les commandes StarJet mode **PCL** des commandes **HP-GL2**.Le mode HPGL ne peut être appliqué que sur des imprimantes supportant effectivement HP-GL2, comme la LaserJet III par exemple.La commande **/MODE** utilisée sans mot clé remet en place le mode préalable.Exempl&#x65;**/PORTRAIT A4/MODE HPGLin;sp1;sd1,9;dtr;ul 9,0,10,5,15,10,10,20,15;/MODE PCL/BOX 5 100 100 200 200**Cette séquence inclut un flot de commandes HP-GL2 précédé par la command&#x65;**/MODE HPGL**. L’appel à la commande **/MODE PCL** permet de revenir en mode PCL.Capture d’écran manquante (image supprimée de la documentation source d’origine).Reportez-vous à la documentation de votre imprimante pour plus d’informations.Commande de préparation à l’émulation de liasse.Syntaxe/MULTIDATA*Paramètres*AucunCommentairesCette commande doit se situer au début de la description de chacun des Overlays utilisés pour émuler des liasses.Capture d’écran manquante (image supprimée de la documentation source d’origine).ExempleCette fonctionnalité n’est disponible qu’en Post-Traitemen&#x74;**/PORTRAIT A4 MAXLINE=50/CHAR 1 UN240BRP INTERNAL***/ Overlay 1 pour l’original*\***/OVERLAY 1/MULTIDATA/TEXT 1 1500 200 ORIGINAL/OVERLAY 0***/ Overlay 2 pour les duplicata*\***/OVERLAY 2/MULTIDATA/TEXT 1 1500 200 DUPLICATA/OVERLAY 0…**&#x43;e fichier de commandes contient la description de deux Overlays très simples: l’un pour imprimer “**ORIGINAL**” et l’autre pour imprimer “**DUPLICATA**“.Ces deux Overlays sont définis avec, comme première commande, la commande **/MULTIDATA**, afin de les rendre compatibles avec l’émulation de liasses.Capture d’écran manquante (image supprimée de la documentation source d’origine)./MULTIPARTCommande de définition du Recto-Verso pour l’émulation de liasse.Syntaxe/MULTIDUPLEX \<i j \[k … ]>*Paramètres***i j** Mode Duplex utilisé pour chaque copieCommentairesCette commande doit se situer après la commande **/MULTIPART** et avant les données.Cette commande permet à StarJet, pour chaque feuillet d’une liasse, d’activer ou de d’invalider le mode Recto-Verso.Il est ainsi possible d’envisager une impression Recto-Verso sur le feuillet “Original” d’une liasse comprenant “les Conditions Générales de Vente”, puis d’imprimer le reste des feuillets en mode Simplex.Capture d’écran manquante (image supprimée de la documentation source d’origine).Cette commande ne peut être exécutée que sur des imprimantes supportant le mode Recto-Verso.Exempl&#x65;**/PORTRAIT A4 MAXLINE=50/CHAR 1 UN240BRP INTERNAL***/ Overlay 1 pour l’original*\***/OVERLAY 1/ MULTIDATA/ TEXT 1 1500 200 ORIGINAL/PAGE/ TEXT 1 1000 200 Conditions Générales de Vente***/ Conditions imprimées au Verso de l’Original*\***/OVERLAY 0***/ Overlay 2 pour les duplicata*\***/OVERLAY 2/MULTIDATA/TEXT 1 1500 200 DUPLICATA***/ Le Recto-Verso étant invalidé, aucune commande*\***/OVERLAY 0/MULTIPART 1 2 2/MULTIDUPLEX 1 0 0**Commande de définition du bac de sortie pour l’émulation de liasse.Syntaxe/MULTIOUTBIN \<i j \[k … ]>*Paramètres***i j** Bac de sortie utilisé pour chaque copieCommentairesCette commande doit se situer après la commande **/MULTIPART** et avant les données.Cette commande permet à StarJet, pour chaque feuillet d’une liasse, de sélectionner le bac de sortie dans lequel le dit feuillet doit être dirigé.Capture d’écran manquante (image supprimée de la documentation source d’origine).Cette commande ne peut être exécutée que sur des imprimantes disposant de plusieurs bacs de sortie.Exempl&#x65;**/PORTRAIT A4 MAXLINE=50/CHAR 1 UN240BRP INTERNAL***/ Overlay 1 pour l’original*\***/OVERLAY 1/MULTIDATA/TEXT 1 1500 200 ORIGINAL/PAGE/TEXT 1 1000 200 Conditions Générales de Vente***/ Conditions imprimées au Verso de l’Original*\***/OVERLAY 0***/ Overlay 2 pour les duplicata*\***/OVERLAY 2/MULTIDATA/TEXT 1 1500 200 DUPLICATA***/ Le Recto-Verso étant invalidé, aucune commande*\***/OVERLAY 0/MULTIPART 1 2 2/MULTIDUPLEX 1 0 0/MULTIOUTBIN 1 1 2**Commande de lancement de l’émulation de liasse.Syntaxe/MULTIPART \[i j \[k …]]*Paramètres***i j** Numéro des Overlays utilisés pour émuler une liasseCommentairesCette commande est la dernière avant les données devant être imprimées sur des liasses émulées.Les numéros indiqués comme paramètres de cette commande identifient les Overlays utilisés.Capture d’écran manquante (image supprimée de la documentation source d’origine).ExempleCette fonctionnalité n’est disponible qu’en Post-Traitemen&#x74;**/PORTRAIT A4 MAXLINE=50/CHAR 1 UN240BRP INTERNAL***/ Début Overlay 1 : ORIGINAL*\***/OVERLAY 1/MULTIDATA/TEXT 1 1500 200 ORIGINAL/OVERLAY 0***/ Début Overlay 2 : DUPLICATA*\***/OVERLAY 2/MULTIDATA/TEXT 1 1500 200 DUPLICATA/OVERLAY 0***/ Début Overlay 3 : Circulation Interne*\***/OVERLAY 3/MULTIDATA/TEXT 1 1500 200 INTERNE/OVERLAY 0/MULTIPART 1 2 2 2 3/INCLUDE fichier-de-données**Ce fichier de commandes contient la description de trois Overlays très simples: l’un pour imprimer “**ORIGINAL**“, un second pour imprimer “**DUPLICATA**“, et le dernier pour imprimer “**INTERNE**“.La commande **/MULTIPART** indique que l’impression des données qui suivent et contenues dans le fichier indiqué pour la commande **/INCLUDE**, doit être effectuée en émulation de liasses.L’ordre des Overlays indiqué dans la commande permettra d’obtenir la séquence suivante :~~**un exemplaire “ORIGINAL” trois exemplaires “DUPLICATA” enfin un exemplaire “INTERNE”**~~Ceux-ci contiennent, bien entendu, les mêmes informations.Capture d’écran manquante (image supprimée de la documentation source d’origine)./MULTIDATA.Capture d’écran manquante (image supprimée de la documentation source d’origine).Capture d’écran manquante (image supprimée de la documentation source d’origine).Commande de définition du bac d’alimentation pour l’émulation de liasse.Syntaxe/MULTITRAY \<i j \[k … ]>*Paramètres***i j** Numéro du bac utilisé pour chaque copieCommentairesCette commande doit se situer après la commande **/MULTIPART** et avant les données.Cette commande permet à StarJet, de sélectionner le bac d’alimentation de l’imprimante pour chaque feuillet d’une liasse.Il est ainsi possible d’envisager une impression sur papier imprimé avec un logo en couleur pour l’exemplaire “Original” d’une liasse, puis d’imprimer le reste des feuillets sur du papier blanc issu du bac du bas.Capture d’écran manquante (image supprimée de la documentation source d’origine).plusieurs bacs d’alimentation.Exempl&#x65;**/PORTRAIT A4 MAXLINE=50/CHAR 1 UN240BRP INTERNAL***/ Overlay 1 pour l’original*\***/OVERLAY 1/ MULTIDATA/ TEXT 1 1500 200 ORIGINAL/PAGE/ TEXT 1 1000 200 Conditions Générales de Vente***/ Conditions imprimées au Verso de l’Original*\***/OVERLAY 0***/ Overlay 2 pour les duplicata*\***/OVERLAY 2/ MULTIDATA/ TEXT 1 1500 200 DUPLICATA***/ Le Recto-Verso étant invalidé, aucune commande*\***/OVERLAY 0/MULTIPART 1 2 2/MULTITRAY 1 4 4**Stoppe l’affichage des commandes.Syntaxe/NOLIST*Paramètres*AucunCommentairesDès lecture de cette commande, StarJet cesse d’afficher les commandes qu’il interprète.Exempl&#x65;**/LANDSCAPE A4/BOX 1 100 100 200 200/LIST/VERTICAL 12 150 100 200/NOLIST/HORIZONTAL 5 100 150 200**La lecture, par StarJet, de ce fichier de commandes (appelé **TEST** dans cet exemple) génère l’affichage suivant :StarJet/Unix Version 3.0Copyright (c) APPIC, 1990Enter command filename: **TEST**3: **/LIST**4: /VERTICAL 12 150 100 2005: /NOLISTInput LinesTotal Warnings : 0: 6Total Errors : 0 Bytes Written : 253Capture d’écran manquante (image supprimée de la documentation source d’origine).Pour sélectionner un bac de sortie du papier de l’imprimante.Syntaxe/OUTBIN*Paramètre***bac** Numéro du bac de sortie papier 0: Sélection du bac courant1: Sélection du bac supérieur 2: Sélection du mode manuel3: Sélection du bac supérieur avec alimentation manuelle 4: Sélection du bac inférieur6: Sélection du magasin d’alimentation à enveloppesExemple**INTRAY 1OUTBIN 0CHAR 1 LP120RRP/0VERLAY 1**\**/Description de la forme***/OVERLAY 0**Marque le début ou la fin d’un fond de page ou Overlay (abréviation: /O).Syntaxe/OVERLAY \<numéro>/OVERLAY 0 \[PERM|TEMP]]*Paramètres***numéro** numéro d’identification affecté à l’Overlay**0** indique la fin de définition d’un Overlay**PERM** Mot clé demandant la sauvegarde de cet Overlay dans la mémoire de l’imprimante**TEMP** Mot clé ne demandant pas la sauvegarde de cet Overlay dans la mémoire de l’imprimanteCommentairesLes bornes **/OVERLAY numéro**…**/OVERLAY 0** délimitent une séquence de commandes dont l’exécution doit être effectuée lors de la réception par l’imprimante d’un saut de page.Lorsque l’imprimante reçoit de l’application une requête de saut de page (Form- Feed), toutes les commandes situées entre la définition de début d’un Overlay **(/OVERLAY numéro)** et la marque de fin de définition de cet Overlay \*\*(commande /OVERLAY 0)\*\*seront exécutées, y compris celles demandant un éventuel saut de page.Il est tout à fait possible de définir plusieurs Overlays au sein du même fichier de commande, mais, l’Overlay actif est le dernier Overlay défini.Pour activer un Overlay, utilisez la commande **/ACTIVATE-OVERLAY**.Le mot clé “**PERM**” permet de rendre permanente une définition. Le mot permanent est à interpréter de la manière suivante : lorsqu’un Overlay est défini, il est par défaut sauvegardé en temporaire, c’est à dire qu’il ne doit pas survivre à un Software Reset (commande “**/RESET**” ou séquence “**E**“). L’utilisation du mot clé “**PERM**” rend cet Overlay Permanent.Un Overlay permanent résiste à un Software Reset, c’est à dire que sa définition reste conservée dans la mémoire de l’imprimante. Toutefois un Software Reset le désactive.Capture d’écran manquante (image supprimée de la documentation source d’origine).Exempl&#x65;**/LANDSCAPE A4/DUPLEX 2/OVERLAY 1***/ Début de l’Overlay 1*\***/BOX 10 100 100 3200 2300***/ Fin de l’Overlay 1*\***/OVERLAY 0/OVERLAY 35***/ Début de l’Overlay 35*\***/B 10 100 100 3200 2300**\**/Cette boite figure au Recto du document imprimé***/P***/ Saut de page*\***/S 2 100 100 3200 2300**\**/Cette surface grisée est, quant à elle au Verso***/OVERLAY 0 PERM**Deux Overlays sont définis dans cet exemple :un premier se voit affecter le numéro logique 1. Il est tout simplement constitué de la description d’un cadre. Ce cadre sera imprimé sur chacune des pages de l’état.un second porte le numéro d’identification 35. Il sera sauvegardé dans la mémoire de l’imprimante en mode Permanent comme demandé dans la commande /O 0 qui en délimite la fin. Cet Overlay est très particulier puisqu’il comporte une commande “/**PAGE**” pour obtenir un saut de page. Ainsi, les données issues du programme d’application seront imprimées sur une page contenant un cadre, puis, lorsque l’application demandera à l’imprimante d’effectuer un saut de page, l’imprimante effectuera un premier saut de page (/**PAGE**), imprimera une surface grisée au verso de cette feuille et enfin effectuera le saut de page demandé par l’application.Capture d’écran manquante (image supprimée de la documentation source d’origine).Demande à l’imprimante d’effectuer un saut de page logique (Abréviation : /P).Syntaxe/PAGE*Paramètres*AucunCommentairesCette commande génère un saut de page (Form Feed).En cas d’impression en mode recto simple d’une page logique par page physique, la feuille est éjectée. Par contre, si le mode recto-verso est actif, la page est éjectée et le travail d’impression continue sur la page suivante (sur le verso de la feuille si la page éjectée est le recto, sur le recto de la feuille suivante si la page éjectée est le verso).En cas d’impression de plusieurs pages logiques par page physique, l’impression se poursuit sur la page logique suivante. Si la page logique en cours d’impression est la dernière page logique de la page physique en cours, cette page physique est éjectée.Exempl&#x65;**/PORTRAIT A4 MAXLINES=50/DUPLEX 1/CHAR 1 HV120BRP/OVERLAY 1/BOX 1 100 100 2200 3200/PAGE/TEXT 1 100 100 Conditions générales de Vente/OVERLAY 0**Cette suite de commandes permet d’effectuer les opérations suivantes :Lorsqu’un saut de page est demandé par l’application, une boîte est tracée sur la page (commande /BOX). Le saut de page effectué (commande /PAGE), la chaîne de caractères **Conditions générales de ventes** est imprimée sur le verso de la feuille.A la fin de ces opérations, le saut de page demandé par l’application est effectué.Impression d’une surface quadrillée.Syntaxe/PATTERN*Paramètres***hachurage** Type de hachurage utilisé.Valeurs disponibles :1 : lignes horizontales 2 : lignes verticales3 : diag. haut droit – bas gauche 4 : diag. haut gauche – bas droit 5 : croisements 1 et 26 : croisements 3 et 4**x1** Origine en partant de la gauche de la page**y1** Origine en partant du haut de la page**x2** Coordonnée du coin opposé en partant de la gauche de la page**y2** Coordonnée du coin opposé en partant du haut de la pageCommentairesUne surface quadrillée dont le type de hachurage dépend de la valeur indiquée dans le paramètre sera comprise entre le coin supérieur gauche se trouvant en **:** et le coin opposé, inférieur droit, e&#x6E;**:.**&#x45;xempl&#x65;**/PORTRAIT A4/PATTERN 1 100 100 2200 200/PATTERN 6 2000 3100 2200 3200**Deux surfaces quadrillées sont demandées dans cet exemple :une première, composée de lignes horizontales, souligne la partie haute du documentune seconde, composée de diagonales croisées, souligne une zone située dans la partie inférieure gauche de la page.Demande à l’imprimante d’effectuer un saut de page physiqueSyntaxe/PHYSICAL-PAGE*Paramètres*AucunCommentairesCette commande génère un saut de page (Form Feed) quel que soit le nombre de pages logiques par page physique, et quelle que soit la position actuelle du curseur sur la page.Cette commande permet, au sein d’un Overlay, d’effectuer l’impression sur le verso de la page.Permet d’insérer un fichier tifSyntaxe/PICTURE \<fichier.tif> page=\<numéro\_index> x=\<coordonnée\_horizontale> y=\<coordonnée\_verticale> rotate=*Paramètres***Fichier.tif** Nom du fichier**page=\<numéro\_index>** Numéro d’index de l’image devant êtreimprimée dans le cas où le fichier tif contient plusieurs images**x=\<coordonnée\_horizontale>** Origine en partant de la gauche de la page **y=\<coordonnée\_verticale>** Origine en partant du haut de la page **rotate=** Définit la rotation de l’image selon l’angle définiExempl&#x65;**/Font-gray 20/Font-opaque/Picture condgen.tif page=2 x=590 y=1916 Rotate=90**Dans cet exemple, l’image insérée est grisée et opaque.Capture d’écran manquante (image supprimée de la documentation source d’origine).256 couleurs max300 dpinon compressésans ICC (profil couleur)Définition du format du papier et du sens d’impressionSyntaxe/PORTRAIT \[ | SIZE= BY ] \[CONTINUE]\[MAXLINES=]\[FORMAT= BY \[ACROSS|DOWN]]\[TOP=]*Paramètres***page-phy** définit le format physique de la feuille.Valeurs supportées :***A4***&#x41;3 EXECUTIVE LETTER LEDGER LEGAL MONARCHCOMMERCIAL-10 ou COM-10 INTERNATIONAL-DL ou DL INTERNATIONAL-C5 ou C5**CONTINUE** Mot clé destiné aux imprimantes HP5000 F100 (papier continu)**SIZE** Permet de définir le format de papier lors de l’utilisation de papier continu (HP5000/F100 ou F135).Taille en inch du papier sur l’axe des X.**BY** Mot clé indispensable pour séparer les valeurs en inch associées a u mot clé SIZE.Taille en inch du papier sur l’axe des Y.**lignes** Nombre de lignes par page logique**FORMAT** Mot clé demandant l’impression de plusieurs pages logiques par page physique**pgx** Nombre de pages logiques par page physique horizontalement **pgy** Nombre de pages logiques par page physique verticalement **ACROSS** Mot clé demandant le déplacement latéral des pages logiques **DOWN** Mot clé demandant le déplacement vertical des pages logiques **TOP** Mot clé permettant d’influer sur la marge haute**marge** Nombre de lignes nécessaires pour la marge hauteCommentairesCette commande doit impérativement être la première des commandes.Elle permet de définir la page physique (A4, A3, etc…), le nombre maximum de lignes devant être imprimées par page ainsi que le nombre et la disposition éventuelle des pages logiques par page physique.Le choix de la commande **/PORTRAIT** dicte le sens de l’impression :**/PORTRAIT** définit une impression verticale.Capture d’écran manquante (image supprimée de la documentation source d’origine)./LANDSCAPE.Le mot clé **CONTINUE** indique à StarJet que l’impression se fera sur une imprimante en continu (HP5000 modèle F100 par exemple). Ceci permet à StarJet de savoir que la ”on printable area” est nulle, et donc influencera les limites adressables de la page.Si plusieurs pages logiques sont définies par page physique, il est possible de demander que les pages soit imprimées colonne par colonne (**DOWN**) ou rangée par rangée (**ACROSS**). **ACROSS** est le défaut.Le mot clé **TOP**, accompagné d’une valeur, indique le nombre de lignes devant être réservées comme marge haute du document.~~**N’utiliser le paramètre TOP que si nécessaire. StarJet fait une gestion intelligente de ce paramètre par défaut.**~~Capture d’écran manquante (image supprimée de la documentation source d’origine).**L’utilisation de pages logiques multiples n’est disponible qu’en Posttraitement**Exemple&#x73;**/PORTRAIT A4 FORMAT=2 BY 3**Le papier utilisé est de format A4. L’impression est réalisée en portrait c’est à dire que le lecteur devra tenir sa feuille verticalement.Cette commande informe également StarJet que vous désirez voir imprimer 6 pages logiques par page physique, à savoir deux pages dans le sens de la largeur et 3 dans le sens de la hauteur. En voici l’illustration schématique :Capture d’écran manquante (image supprimée de la documentation source d’origine).LaserJet ne supportent pas cette fonctionnalité.**/PORTRAIT A4 MAXLINES=50 TOP=5**Le papier utilisé est de format A4. L’impression se fait en portrait, c’est-à-dire que le lecteur devra tenir sa feuille verticalement.Cette commande informe également StarJet que vous désirez n’imprimer que 50 lignes par page et cela, après un saut de ligne initial de 5 lignes.Autorise le changement du premier caractère des commandes StarJet.Syntaxe/PREFIXParamètres**s** Caractère spécial remplaçant la barre de fraction (‘/’)CommentairesIl est possible, grâce à cette commande, de changer le caractère défini comme préfixe aux commandes comprises par StarJet. Ce caractère doit être un caractère spécial.Si cette commande est utilisée au sein d’un fichier comprenant la command&#x65;**/INCLUDE**, le préfixe actif pour le fichier de commandes principal est réactivé à la fin de l’inclusion.Capture d’écran manquante (image supprimée de la documentation source d’origine).Exempl&#x65;**/LANDSCAPE A4/PREFIX ##BOX 1 100 100 200 200 #PREFIX /**&#x4C;a commande **#BOX** est interprétée comme une commande StarJet bien qu’elle ne commence pas par une barre de fraction.**/LANDSCAPE A4/PREFIX ##BOX 1 100 100 200 200 ##**&#x43;et exemple illustre comment terminer StarJet en remplaçant **“//”** par **“##”**, puisque “**#**” est le préfixe courant.Envoi d’un Software Reset vers l’imprimanteSyntaxe/RESET*Paramètres*AucunCommentairesCette commande provoque l’émission d’une séquence **E** (Software Reset) vers l’imprimante.Il est recommandé d’utiliser systématiquement cette commande au début de chaque fichier afin d’initialiser correctement l’imprimante.Capture d’écran manquante (image supprimée de la documentation source d’origine).Exempl&#x65;**/RESET/LANDSCAPE A4/…**&#x50;ermet de “nettoyer” la mémoire de l’imprimante avant l’envoi des commandes contenues dans le fichier.Demande la rotation du sens d’impression.Syntaxe/ROTATEParamètre**Angle** Définit une rotation exprimée en degrés, dans le sens des aiguilles d’une montre. Les valeurs sont 0, 90, 180 ou 270.CommentairesCette commande permet d’effectuer la rotation du sens d’écriture. La LaserJet série III permet en effet d’écrire verticalement et horizontalement sur une même page physique.Capture d’écran manquante (image supprimée de la documentation source d’origine).Exempl&#x65;**/C1 TR080RRP/T1 100 1000/ROTATE 90Texte imprimé verticalement par rapport à la page/ROTATE 0/T1 100 2000Texte imprimé horizontalement sur la page**Impression d’une surface grisée (Abr. : /S).Syntaxe/SHADEParamètres**ton** Tonalité de gris utilisé. Valeur comprise entre 1 et 8**x1** Origine en partant de la gauche de la page**y1** Origine en partant du haut de la page**x2** Coordonnée du coin opposé en partant de la gauche de la page**y2** Coordonnée du coin opposé en partant du haut de la pageCommentairesCette commande génère une surface grisée.Cette surface plus ou moins grisée selon la valeur de (très claire pour une valeur 1 à noire pour une valeur 8) sera comprise entre le coin supérieur gauche se trouvant en **:** et le coin opposé inférieur droit e&#x6E;**:.**&#x45;xempl&#x65;**/PORTRAIT A4 MAXLINES=50/OVERLAY 1/SHADE 1 100 100 2200 3200/S 7 2000 3100 2200 3200/OVERLAY 0**Deux surfaces sont demandées dans cet exemple :une première, très claire (ton à 1) grise la majeure partie de la pageune seconde plus soutenue (ton à 7) souligne, au sein de la première surface grisée, une zone située dans la partie inférieure gauche de la page.Ces deux surfaces grisées sont dessinées à l’intérieur d’un Overlay (pair&#x65;**/OVERLAY 1 .. /OVERLAY 0**).Affichage des polices internes actives.Syntaxe/SHOWINTParamètresAucunCommentairesCette commande provoque l’affichage d’informations concernant les polices internes connues de StarJet.Sont considérées comme polices internes, les polices préalablement définies par la commande **/CHAR** et accompagnées du mot clé **INTERNAL**.Cet affichage indique le numéro de la police ainsi que la séquence d’échappement envoyée vers l’imprimante afin d’activer cette police de caractères.ExempleStarJet Unix Version 3.0Enter command filename :Copyright (c) APPIC, 1990Note: Input file is terminal.: Terminate input using //1: **/PORTRAIT A4**2: **/CHAR 1 HV240BRP**3: **/CHAR 2 LP120RRP INTERNAL**4: **/SHOWINT**Following internal fonts active: Font # Definition2 (8U(s0p10.00h12.00v0s0b35T5: **//**&#x49;nput LinesTotal Warnings : 0 #: 5Total Errors : 0 Bytes Written : 417Le signe tilde **“\~”** correspond au caractère “**Escape**“. Ce remplacement autorise une meilleure lisibilité, et correspond à celui effectué en sens inverse pour la commande **/CHAR**.Mise en route ou arrêt du saut de page automatiqueSyntaxe/SKIP ON|OFFParamètres**ON** Mise en route du saut de page automatique de l’imprimante**OFF** Arrêt de cette fonctionnalitéCommentairesL’imprimante LaserJet est capable, lorsque l’impression d’un quelconque élément est situé très bas sur la page physique en cours, de déclencher un saut de page automatique. Ce déclenchement peut être désiré ou indésirable.Cette commande permet de conserver le contrôle des sauts de pages.Active une police, et/ou positionne le curseur et/ou imprime du texte (abr. : /T)Syntaxe/TEXT \<numéro-police> \[ \[chaîne libre]]*Paramètres***numéro-police** numéro de la police à utiliser**x1** Origine en partant de la gauche de la page**y1** Origine en partant du haut de la page**chaîne libre** Chaîne de caractères à imprimer. Elle peut contenir des espaces.CommentairesCette commande a deux intérêts : elle permet d’imprimer à un endroit précis une chaîne de caractères en utilisant une police donnée ou de sélectionner une police en positionnant le curseur pour une impression ultérieure.Si la chaîne de caractères commence par un caractère tilde ‘**\~**‘, celui sera détecté et tous les autres tildes seront remplacés par les caractères **“Escape”.**&#x43;apture d’écran manquante (image supprimée de la documentation source d’origine).Le curseur est positionné aux coordonnées **:** avant le début de l’impression.Exempl&#x65;**/PORTRAIT A4/CHAR 1 HV240BRP/CHAR 2 LP120RRP/OVERLAY 1/TEXT 1 2300 300 FACTURE/OVERLAY 0/TEXT 2**Deux polices de caractères sont définies dans cet exemple :une première, portant le numéro 1, est téléchargée. Il s’agit d’une police Helvetica, corps 24, caractères gras ;une seconde, de numéro 2, est une police interne de l’imprimante, de type Line Printer 12 points.Au sein d’un Overlay, c’est à dire, sur chacune des pages de l’état, le mot “**FACTURE**” est imprimé au moyen de la police numéro 1 en haut à gauche de la page.La dernière commande indique qu’il faut sélectionner la police numéro 2 pour l’impression de ce qui doit arriver derrière cette commande. Dans ce cas, ce sont les données émises par l’applicationActive une police, positionne le curseur et imprime du texte verticalement (abr.: /TV).Syntaxe/TEXT-VERT \<chaîne libre>Paramètres**police** numéro de la police à utiliser**x1** Origine en partant de la gauche de la page**y1** Origine en partant du haut de la page**y2** Position du dernier caractère en partant du haut de la page**chaîne libre** Chaîne de caractères à imprimer. Elle peut contenir des espaces.CommentairesCette commande permet l’impression d’une chaîne de caractères sous forme de colonnes. Elle autorise la sélection de la police de caractères désirée, indique le point de départ de l’impression et le point vertical maximum ou doit se trouver le dernier caractère de la chaîne de caractères.Si la chaîne de caractères commence par un caractère tilde ‘**\~**‘, celui sera détecté et tous les autres tildes seront remplacés par les caractères “**Escape**“.Capture d’écran manquante (image supprimée de la documentation source d’origine).Le curseur est positionné aux coordonnées **:** avant le début de l’impression.Exempl&#x65;**/PORTRAIT A4 MAXLINES=60/CHAR 1 HV080BRP/CHAR 2 LP120RRP INTERNAL/OVERLAY 1/TEXT-VERT 1 2300 300 500 TVA/OVERLAY 0/TEXT 2**Les trois caractères T, V et A seront imprimés l’un en dessous de l’autre, commençant en <2300:300> (caractère **T**) et se terminant en **<2300:500>** (caractère **A**).Active une police secondaire, et/ou positionne le curseur et/ou imprime du texte.Syntaxe/U \<numéro-police> \[ \[chaîne libre]]Paramètres**numéro-police** numéro de la police à utiliser**x1** Origine en partant de la gauche de la page**y1** Origine en partant du haut de la page**chaîne libre** Chaîne de caractères à imprimer. Elle peut contenir des espaces.CommentairesCette commande a deux intérêts : elle permet soit d’imprimer une chaîne de caractères en utilisant une police donnée (ceci, après précision de l’endroit d’impression), soit de sélectionner une police en positionnant le curseur pour une impression ultérieure.Après exécution de cette commande, la police définie par **\<numéro-police>**&#x65;st définie comme étant la police secondaire de l’imprimante.Si la chaîne de caractères commence par un caractère tilde ‘**\~**‘, celui sera détecté et tous les autres tildes seront remplacés par les caractères **“Escape”.**&#x43;apture d’écran manquante (image supprimée de la documentation source d’origine).Le curseur est positionné aux coordonnées **:** avant le début de l’impression.Exempl&#x65;**/PORTRAIT A4 MAXLINES=60/CHAR 1 HV120RRP/CHAR 2 HV120IRP/T 1/U 2Attention ! Texte libre**La commande **/U 2** indique que la police numéro 2 doit être la police secondaire de l’imprimante.La ligne de texte “**Attention Texte libre**” sera imprimée en utilisant deux polices de caractères :le mot **“Attention”** sera imprimé en utilisant la police numéro 2 .Le reste du texte sera imprimé à l’aide de la police numéro 1 car il est précédé du caractère **.**~~**/VERTICAL**~~Pour définir une ligne verticale (abr. /V)Syntaxe/VParamètres**epais** Epaisseur de la ligne (entre 1 et 9)**x1** Distance en points entre le point de départ et la marge gauche **y1** Distance en points entre le point de départ et le haut de la page **y2** Distance en points entre le point d’arrivée et le haut de la pageLes trois derniers paramètres ne doivent pas dépasser 4 caractères numériques.Exemple/**V9 100 0 32009** représente l’épaisseur de la ligne à tracer et les trois paramètres suivants indiquent les points de départ et d’arrivée de la ligne sur la page.~~**/ZEROX ET /ZEROY**~~Commandes StarJet pour décaler le point zero de la zone adressable PCL par rapport au point zero par defaut de la zone adresable PCL (logical page). On utilise ses valeurs entiers negatives pour un decalage portrait haut/gauche et des valeurs entiers positives pour un decalage portrait bas/droite.Exemple zerox/ZEROX -140Dans cet exemple la coordonnée X du point zéro sera décalée vers la gauche avec 140 decipoints PCL par rapport à la valeur absolue par défaut de la zone adressable PCL pour l’ensemble du projet.Exemple zeroy/ZEROY 80Dans cet exemple la coordonnée Y du point zéro sera décalé vers le bas avec 80 decipoints PCL par rapport à la valeur absolue par défaut de la zone adressable PCL pour l’ensemble du projet.Permet d’insérer des commentaires dans un fichier de commandes.CommentairesBien entendu, ces commentaires ne sont pas pris en compte par le produit et donc, n’apparaissent pas lors de l’impression.Capture d’écran manquante (image supprimée de la documentation source d’origine).Exempl&#x65;**/DUPLEX 1/CHAR 1 LP080RRP***/ Police de caractères Line Printer, Taille 8*\***/CHAR 2 TR140IRP***/ Police de caractères Times Roman, Taille 14*\***/OVERLAY 1**\**/Début de la Forme N°1***/TEXT 2 1000 32000 Forme N°1/TEXT 2 0 0 RECTO/PAGE/TEXT 2 1000 3200 Forme N°2/TEXT 2 0 0 VERSO/OVERLAY 0**\**/Fin de la forme N°1***/TEXT 1 0 0**\**/Sélection de la police LP080RRP pour l’impression des données.*\**/Positionnement du curseur en (0,0).*&#x52;emplace le caractère Esc dans un fichier de commandesCommentairesIl est possible, grâce à l’utilisation du caractère Tilde ‘**\~**‘ d’envoyer à l’imprimante n’importe quelle séquence d’escape afin d’accéder à des fonctionnalités non supportées par StarJet.Ce caractère peut être utilisé au sein d’une commande /T ou directement dans une ligne de texte libre.Exempl&#x65;**/CHAR 1 LP080RRP\~\&a5L***/ Définition d’une marge gauche de 5 colonnes*\*~~


---

# 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/appic/installation-et-administration/starpage.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.
