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 | Windows 7, 8, 8.1, 10 Windows Server 2003 Windows Server 2008 Windows Server 2012 | Windows 98 Windows NT 4.0 Windows 2000 |
Unix | HP-UX 11 AIX 4.3.3 Sun Solaris 5.5 Compaq TRU64 5.0 SCO Open Server 6 Linux(1) : RedHat : version 5 et supérieur Suse : version 11 et supérieur. Debian : version 2 et supérieur. |
Processeur minimum
Système d’exploitation | Processeur minimum requis |
Windows & Unix | tout processeur compatible |
RAM
Système d’exploitation | Quantité de RAM minimale requise(2) |
Unix/Linux | 2Go min |
Windows Server 2003 Windows Server 2008 Windows Server 2012 | 2Go min |
- Pour une liste exhaustive des distributions Linux compatibles, merci de contacter le support à l’adresse électronique suivante : 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.


- 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.

(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.

(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.

(1)
StarPage permet de reformater les données et de composer plusieurs documents à l’aide d’un même layout.
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é.

(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é.

(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.

(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.

(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.

(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.

(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.

(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).


(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).

(1)

(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)

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 ( )

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.
<?xml version=”1.0″ encoding=”ISO-8859-1″,>
<bookstore>
<book>
<title>Around the world in eighty days</title>
<author>Jules Vernes</author>
<year>1962</year>
</book>
<book>
<title>Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
/bookstore/book/title[price=’39.95′] renvoie
<title>Learning XML</title>
/bookstore/book/title[1] renvoie
<title> Around the world in eighty days</title>
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 :”

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

- 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.

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

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.

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

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 |
|
Exemple | form “fichier.sjp” ………… ………… |
Prefix
Cette commande permet de remplacer le préfixe des commandes de StarJet.
Syntaxe | prefix <s> |
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 |
|
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 <nombre_lignes> |
Paramètres | nombre_lignes est le nombre maximum de lignes par page. |
Commentaires |
|
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. |

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<nlig>:C<ncol> = “Chaîne“ |
Paramètres | L<nlig> est le numéro de la ligne de départ par rapport à la rupture de page C<ncol> 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 ………… ![]()
|
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 ………… |

Default
Cette commande permet de définir une commande d’environnement par défaut.
Syntaxe | Default <commande d’environnement> |
Paramètres | commande d’environnement représente la commande et son paramètre. |
Commentaires |
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 <Entier> |
Paramètres | Entier est une valeur entière qui, si elle est égale à zéro, désactive le _MAXLOOP. |
Commentaires |
_MAXLOOP.
|
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 <sep> |
Paramètres | sep représente un caractère |
Commentaires |
|
Exemple | ………… local numbers separator ‘.’ ………… |
Local numbers decimal
Définition du séparateur par défaut des décimales
Syntaxe | local numbers decimal <sep> |
Paramètres | sep représente un caractère |
Commentaires |
|
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 |
|
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 <nom> 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 |
|
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 <nom> Is Zone <def_zone>[Page <P>][“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 |
|
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 <nom> Is Field “Chaîne”[NOCASE] [COL<inter>] [LINE<inter>] [START<<NUM1>│<CAR1>>] [STOP<<NUM2>│<CAR2>>] |
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 -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 10-25 indique que le premier caractère de la séquence est situé entre la colonne 10 et la colonne 25.
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. |

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 <nom> 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 |
|
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 |
|
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 |
|
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 CONDITIONS

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 <nom_de_condition> is <expression booléenne> |
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 |
|
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
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 |
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(1) 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 |
|

(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 <Nom_Macro> |
Paramètres | ExpBool représente une expression booléenne définissant la condition. Nom_Macro représente le nom de la macro à appeler. |
Commentaires |
|
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 <over> |
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 |
|
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 <bloc> to <x>, <y> [text <t>]
[rotate <angle>] [gray <shade>] [density <d>] [linespacing <ls>]
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 |
|
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. |

Erase
Réservée au mode ASCII, cette commande permet d’effacer les informations d’un bloc de données.
Syntaxe | [[<ExpBool>]] erase <bloc> |
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 |
|
Exemple | ………… erase L6,7:C1,132 ………… Le bloc de données situé ligne 6 de la première colonne à la colonne 132 est supprimé. |







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 |
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 <bloc> to <x>, <y> [text <t>] [rotate <angle>] [gray <shade>] [density <d>] [linespacing <ls>] |
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)
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 |
|
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. |

Les informations contenues dans le bloc, disparaissent de la matrice d’entrée une fois imprimées.
Bar_PDF417
Cette commande permet d’insérer un code à barres PDF417 (cf § Codes à barre / PDF417
et annexes II).
Syntaxe | [[<ExpBool>]] Bar_PDF417 (<Exp1 ; Exp2 ; … ; Expn>) to<x>, <y> text <n> UnitHeight <h> UnitWidth <w> [ErrorLevel <e>] [Rows <r>] [Cols <c>] [AspectRatioVert <av>] [AspectRatioHor <ah>] [Truncate] |
Paramètres | ExpBool représente une expression booléenne permettant de définir une condition. (<Exp1 ; Exp2 ; … ; Expn>) 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 <n> | Le nombre de lignes est en dehors des limites 3-90. |
PDF417 error: incorrect columns number <n> | Le nombre de colonnes est en dehors des limites 1-30. |
PDF417 error: not enough rows <n> or columns <n> | 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 (<Exp1 ; Exp2 ; … ; Expn>) to <x>, <y> text <n> [ModuleWidth <w>] [Rows <r> Cols <c>] |
Paramètres | ExpBool représente une expression booléenne permettant de définir une condition. (<Exp1 ; Exp2 ; … ; Expn>) 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 :
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 <expression string> to <x>,<y> [(Justify or AlignLeft or AlignRight or Center)] [Width <w>] [(MaxLinesCount or MaxHeight or MaxClipY)<cstr>] [text <t>] [LineSpacing <ls>] [rotate <angle>] [gray <shade>] [density <d>] |
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)
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. |

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 <expression string> ResLinesCount <rlc> ResHeight <rh> [(Justify or AlignLeft or AlignRight or Center)] [Width <w>] [text <t>] [LineSpacing <ls>] |
Syntaxe 2 : paragraphe “découpé” | [[<ExpBool>]] GetParagraphInfo <expression string> ResBeginning <rb> ResEnd <re> [(Justify or AlignLeft or AlignRight or Center)] [Width <w>] [(MaxLinesCount or MaxHeight) <cstr>] [text <t>] [LineSpacing <ls>] |
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 | ![]()
………… 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 |


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
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
………… Le résultat est affiché ci-dessous : |
Ajout 2 nouveau paramètres optionnels : [Start sx, sy] [End ex, ey]
Syntaxe1 :
[[<ExpBool>]] GetParagraphInfo <expression
string> ResLinesCount <rlc> ResHeight <rh> [(Justify or AlignLeft or AlignRight or
Center)] [Width <w>] [Text <t>] [LineSpacing <ls>] [Start <xStart>, <yStart>] [End
<xEnd>, <yEnd>]
Syntaxe2 :
[[<ExpBool>]] GetParagraphInfo <expression
string> ResBeginning <rb> ResEnd <re> [(Justify or AlignLeft or AlignRight or
Center)] [Width <w>] [MaxLinesCount or MaxHeight) <cstr>][Text <t>] [LineSpacing
<ls>] [Start <xStart>, <yStart>] [End <xEnd>, <yEnd>]
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 :
[<ExpBool>] GetParagraphElementsInfo (ResLinesCount <rlc> || ResHeight <rh>)
(Justify|AlignLeft|AlignRight|Center) Width <w> Text <t> LineSpacing <ls> [Start <xStart>,
<yStart>] [End <xEnd>, <yEnd>] [Element <str1> [Texte <t1>]]
… (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 :
- <ExpBool> 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.
- <rh> 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.
- <w> est la largeur du paragraphe en points PCL.
- <t>, <t1> … représente la police à utiliser pour l’ensemble du paragraphe, respectivement pour l’élément du paragraphe.
- <ls> représente l’espacement entre les lignes, exprimé en points PCL.
- <str1>… 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.
- (<xStart>, <yStart>) représente des variables qui vont contenir les coordonnées du début effectif d’écriture du paragraphe
- (<xEnd>, <yEnd>) – 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 :
[<ExpBool>] GetParagraphElementsInfo (Justify|AlignLeft|AlignRight|Center) Width
<w> (MaxLinesCount | MaxHeight) <cstr> Text <t> LineSpacing <ls> [Start <xStart>,
<yStart>] [End <xEnd>, <yEnd>]
[Element <str1> (ResBegining <rb1> || ResEnd <re1>) [Texte <t1>] ]
… (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 :
- <ExpBool> 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.
- <cstr> est une expression string pour exprimer la contrainte de scission que ce soit la hauteur maximum du paragraphe, si <cstr> est précédé par MaxHeight, ou nombre le nombre maximum de lignes du paragraphe, si précédé par MaxLinesCount.
- <w> est la largeur du paragraphe en points PCL.
- <t>, <t1> … représente la police à utiliser pour l’ensemble du paragraphe, respectivement pour l’élément du paragraphe.
- <ls> représente l’espacement entre les lignes, exprimé en points PCL.
- <str1>… 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.
- <rb1>… représente le début de l’élément du paragraphe correspondant, si celui-ci est “découpé”.
- <re1>… représente la seconde partie de l’élément du paragraphe correspondant, si celui-ci est “découpé”.
- (<xStart>, <yStart>) représente des variables qui vont contenir les coordonnées du début effectif d’écriture du paragraphe
- (<xEnd>, <yEnd>) – 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 <expression> to <variable> [[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 |
|
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 = <init> TO <end> STEP <val- 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 |
|
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 <expression booléenne> … 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 |
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 <expression booléenne> … 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 |
|
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 <expression string> CASE <val1> : … CASE <val2>;<val3> : … 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 |
|
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 ………… |
MACROS

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 <Nom_Macro> [Printable] <instruction1> [<instruction2>] … [when <ExpBool>] … |
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 |
|
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 ………… |

LAYOUT
LAYOUT
Cette commande permet de définir une nouveau layout de type Page (cf § Layout type Page)
Syntaxe | Layout <nom> [with <Id> [RESTORE] INCREASE|DECREASE <borne>[step <pas>]] [when <ExpBool>] |
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 |
é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 .. .. .. ………… |

OVERLAY

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 <num> [when <ExpBool>] |
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 |
|
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 <nom> [with <Id> [RESTORE] INCREASE|DECREASE <borne>[step <pas>]] [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 |
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 |

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 (<expression string, len>) |
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 | <expression string 1> in (<expression string 2>) |
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 <num>
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

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 :
Paramètres :
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ème chiffre, le code pays, est déduit d’après le masque des 6 premiers chiffres. |
Code Pays lisible

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(1), 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.

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(1), bidirectionnel |
Exemple StarPage | Se reporter aux annexes |
Instructions StarPage | Fonctions : – BAR_CODE128(DATA [offset, EndCode1, EndCode2]) Paramètres :
|
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 :
|
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. |

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(1), 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 :
|
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

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(1), bidirectionnel |
Exemple StarPage | Se reporter aux annexes |
Instructions StarPage | Fonctions : – BAR_Ean128(DATA [offset, EndCode1, EndCode2]) Paramètres :
|
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. |
(1) 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

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 :
|
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.
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 | |
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 Portable Data File (=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 1

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 | |
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 pouce2 soit 6,45 cm2. |
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
- “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.

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=<x> by <y>} [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=<x> by <y>} [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 <ls> |
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 <nc> |
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. |

prise en compte.
Intray
Cette commande permet de sélectionner un bac d’alimentation papier de l’imprimante.
Syntaxe | Intray <nt> |
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 <nb> |
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 <no> |
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 (<expression string>) |
Tolower
Cette fonction permet de convertir les caractères majuscules en minuscules
Syntaxe | tolower (<expression string>) |
Trim
Left
Right
Cette fonction permet de supprimer les blancs en début et en fin de chaîne.
Syntaxe | trim (<expression string>) |
Cette fonction permet retourner la partie gauche de l’expression sur la longueur len
Syntaxe | left (<expression string, len>) |
Cette fonction permet retourner la partie droite de l’expression sur la longueur len.
Syntaxe | right (<expression string, len>) |
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 (<ExpStrValeur, ExpStrLangage, Nombre_Precision, [ExpStrEuros, ExpStrEuros, 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 DDsepMMsepYY |
DDYYMM DDsepYYsepMM |
MMDDYY MMsepDDsepYY |
MMYYDD MMsepYYsepDD |
YYMMDD YYsepMMsepDD |
YYDDMM YYsepDDsepMM |
DDMMYYYY DDsepMMsepYYYY |
DDYYYYMM DDsepYYYYsepMM |
MMDDYYYY MMsepDDsepYYYY |
MMYYYYDD MMsepYYYYsepDD |
YYYYMMDD YYYYsepMMsepDD |
YYYYDDMM YYYYsepDDsepMM |
DsepMsepY |
MsepYsepD |
DsepYsepM |
YsepMsepD |
MsepDsepY |
YsepDsepM |
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”,””)


☼ 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 1er |
FORMATDATE (“20011223”, “Dt”, “FRA”) | Le 23 |
FORMATDATE (“20001101”, “Dt”, “ENU”) | The 1st |
FORMATDATE (“20011223”, “Dt”, “ENU”) | The 23th |
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 |

Ex : FORMATDATE (“20001105”, “DsepMsepY”, “FRA”) 🠖 05/11/2000 ou FORMATDATE (“20001105”, “DMY”, “FRA”) 🠖 05112000


- le français symbolisé par l’abréviation FRA
- l’anglais symbolisé par l’abréviation ENU
- l’allemand symbolisé par l’abréviation DEU

☼ 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 |
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 :
Les polices de taille fixe à associer sont les fichiers suivants (taille 9, 12, 16, 24) : nk09rea.sfp, nk12rea.sfp, nk16rea.sfp, nk24rea.sfp. |


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 |
|
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 |
|
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 |
|
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 |
|
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 |
| |
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 |
|
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 |
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 |
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 |
|
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 |
|
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 |
|
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 | <?xml version=”1.0″ encoding=”iso-8859-1″ ?> <bookstore> <book> <title> Le rayon vert </title> <author> <firstname>Jules</firstname> <lastname>Vernes</lastname> </author> </book> </bookstore> XPath (“/bookstore/book/author”) renvoie <author> <firstname>Jules</firstname> <lastname>Vernes</lastname> </author> |
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.
Syntaxe | XPath (xPathExpStr, nodeExpStr) |
Paramètres | xPathExpStr représente le “chemin” de la requête nodeExpStr représente le nœud, partie du document XML |
Commentaires | Si le résultat est constitué de plusieurs éléments, les réponses sont concaténées |
Exemple | <?xml version=”1.0″ encoding=”iso-8859-1″?> <bookstore> <book> <title> Le rayon vert </title> <author> Jules Vernes </author> </book> <book> <title> Learning XML </title> <author> Erik T. Ray </author> </book> </bookstore> La commande Set permet d’affecter une valeur à une variable de type Set. Set XPath (“/bookstore/book”)[1] to book1 … XPath (“/book/author”, book1) renvoie <author> Jules Vernes </author> |
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.
Syntaxe | XPath (xPathExpStr,[nodeExpStr]) [i] |
Paramètres | xPathExpStr représente le “chemin” de la requête nodeExpStr représente le nœud, partie du document XML i représente le numéro d’indice |
Exemple | <?xml version=”1.0″ encoding=”iso-8859-1″?> <bookstore> <book> <title> Le rayon vert </title> <author> Jules Vernes </author> </book> <book> <title> Learning XML </title> <author> Erik T. Ray </author> </book> </bookstore> XPath(“/bookstore/book/author”)[1] renvoie <author> Jules Vernes </author> |
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.
Syntaxe | XPath (xPathExpStr,[nodeExpStr]).Count |
Paramètres | xPathExpStr représente le “chemin” de la requête nodeExpStr représente le nœud, partie du document XML |
Exemple | <?xml version=”1.0″ encoding=”iso-8859-1″?> <bookstore> <book> <title> Le rayon vert </title> <author> Jules Vernes </author> </book> <book> <title> Learning XML </title> <author> Erik T. Ray </author> </book> </bookstore> XPath(“/bookstore/*”).Count renvoie 2 |
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.
Syntaxe | XPath (xPathExpStr,[nodeExpStr])[[i]].Value |
Paramètres | xPathExpStr représente le “chemin” de la requête nodeExpStr représente le nœud, partie du document XML i représente le numéro d’indice |
Commentaires | Si le résultat est constitué de plusieurs éléments, les réponses sont concaténées |
Exemples | <?xml version=”1.0″ encoding=”iso-8859-1″?> <bookstore> <book> <title> Le rayon vert </title> <author> Jules Vernes </author> </book> <book> <title> Learning XML </title> <author> Erik T. Ray </author> </book> </bookstore> XPath (“/bookstore/book/author”).Value renvoie Jules Vernes Erik T. Ray XPath(“/bookstore/book/author”)[2].Value renvoie Erik T. Ray |
(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.
Syntaxe | XPath(xPathExpStr,[nodeExpStr])[[i]].Name |
Paramètres | xPathExpStr représente le “chemin” de la requête nodeExpStr représente le nœud, partie du document XML i représente le numéro d’indice |
Commentaires | Si le résultat est constitué de plusieurs éléments, les réponses sont concaténées |
Exemples | <?xml version=”1.0″ encoding=”iso-8859-1″?> <bookstore> <book> <title> Le rayon vert </title> <author> Jules Vernes </author> </book> <book> <title> Learning XML </title> <author> Erik T. Ray </author> </book> </bookstore> XPath(“/bookstore/book/author”).Name renvoie author author XPath(“/bookstore/book/author”)[1].Name renvoie author |
(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.
Syntaxe | XPath(xPathExpStr,[nodeExpStr])[[i]].Path |
Paramètres | xPathExpStr représente le “chemin” de la requête nodeExpStr représente le nœud, partie du document XML i représente le numéro d’indice |
Commentaires | Si le résultat est constitué de plusieurs éléments, les réponses sont concaténées |
Exemple | <?xml version=”1.0″ encoding=”iso-8859-1″?> <bookstore> <book> <title> Le rayon vert </title> <author> Jules Vernes </author> </book> <book> <title> Learning XML </title> <author> Erik T. Ray </author> </book> </bookstore> XPath(“/bookstore/book/*”)[2].Path renvoie /bookstore/book/author |
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.
Syntaxe | XPath(xPathExpStr,[nodeExpStr])[[i]].ExactPath |
Paramètres | xPathExpStr représente le “chemin” de la requête nodeExpStr représente le nœud, partie du document XML i représente le numéro d’indice |
Commentaires | Si le résultat est constitué de plusieurs éléments, les réponses sont concaténées |
Exemple | <?xml version=”1.0″ encoding=”iso-8859-1″?> <bookstore> <book> <title> Le rayon vert </title> <author> Jules Vernes </author> </book> <book> <title> Learning XML </title> <author> Erik T. Ray </author> </book> </bookstore> XPath(“/bookstore/book/*”)[2].ExactPath renvoie /bookstore/book/author[1] |
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.
COMMENTAIRES
COMMENTAIRES
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.

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.


FONCTIONS OBSOLETES
FONCTIONS OBSOLETES
Include Rest
Réservée au mode ASCII, cette commande permet d’inclure le reste de la page.
Syntaxe | Include rest |
Commentaires |
/PORTRAIT ou /LANDSCAPE du fond de page indiqué dans la commande form, ainsi, bien entendu que de la taille du papier.
|
Text
Cette commande permet de définir la police de caractères à utiliser par défaut.
Syntaxe | text <police> [density <dens>] |
Paramètres | police représente le numéro de police à utiliser par défaut density est le mot-clé permettant d’altérer la densité par défaut de la police
|
Commentaires |
|
Exemple | ………… text 2 density 13.8 .. .. ………… Par défaut, c’est à dire en l’absence d’indication contraire mentionnée dans les commandes suivantes, la police utilisée sera celle définie dans le fichier de commandes StarJet par la commande /CHAR 2. Les données seront imprimées avec une densité de 13,8 caractères par pouce. En toute logique cette police de caractères est une police à espacement fixe, faute de quoi le mot clef density n’a aucune influence sur l’impression. |
VerticalSpacing
Cette commande est une option de positionnement liée à la commande Include Rest.
Syntaxe | VerticalSpacing <vmi> <Top> |
Left-Margin
Cette commande positionne une marge gauche.
Syntaxe | Left-Margin <lm> |
Paramètres | lm représente le nombre de colonnes devant constituer la marge gauche |
MultiDuplex
Cette commande permet de définir du Recto-Verso pour l’émulation de liasse.
Syntaxe | MultiDuplex <nd> <nd> … <nd> |
Paramètres | nd représente le mode Duplex utilisé pour chaque copie |
MultiOutbin
Cette commande permet de définir le bac de sortie pour l’émulation de liasse.
Syntaxe | MultiOutBin <nb> <nb> … <nb> |
Paramètres | nb représente le bac de sortie utilisé pour chaque copie |
MultiTray
Cette commande permet de définir le bac d’alimentation pour l’émulation de liasse.
Syntaxe | MultiTray <nb> <nb> … <nb> |
Paramètres | nb représente le bac d’alimentation utilisé pour chaque copie. |
Use Multipart
Cette commande permet de demander le lancement de l’émulation de liasse.
Syntaxe | Use Multipart <no> <no> … <no> |
Paramètres | no représente les numéros des Overlays utilisés pour émuler une liasse. |
Commentaires |
|
Exemple | ………… text 2 density 13.8 .. ………… Par défaut, c’est à dire en l’absence d’indication contraire mentionnée dans les commandes suivantes, la police utilisée sera celle définie dans le fichier de commandes StarJet par la commande /CHAR 2. Les données seront imprimées avec une densité de 13,8 caractères par pouce. En toute logique cette police de caractères est une police à espacement fixe, faute de quoi le mot clef density n’a aucune influence sur l’impression. |
CODES RETOUR

STARPAGE /MANUEL DE REFERENCE
Code | Définition | |
retour | ||
0 | Aucune erreur | |
Ligne de commande | -1 | Erreur de syntaxe sur la ligne de commande |
-2 | Sortie non définie | |
-3 | Pas de ficher de données | |
-4 | Le fichier .sp n’a pas été spécifié | |
-7 | Sortie déjà spécifiée | |
-8 | Fichier .sp déjà spécifié | |
-9 | Fichier de données déjà spécifié | |
-10 | Commande incompatible avec paramètre | |
-11 | Option déjà spécifiée | |
-12 | Paramètre manquant pour l’option | |
-13 | Redirection impossible | |
Validation et modules | -20 | Période de validité expirée |
-21 | Copy non valide | |
-22 | Versions des dll incompatibles | |
Gestion de fichier | -32 | Impossible d’ouvrir la sortie |
-33 | Impossible de fermer la sortie | |
-35 | Impossible d’ouvrir le fichier de message StarJet | |
-36 | Impossible de parser le fichier .sp | |
-40 | Impossible de récupérer les paramètres | |
Fonction d’initialisation | -41 | Impossible d’initialiser le “page array” |
-42 | Impossible d’initialiser la sortie | |
-43 | Impossible de libérer la sortie | |
-44 | Plus de mémoire | |
-50 | Le fichier spécifié n’a pas été trouvé ou problème d’ouverture du fichier | |
Projets | -60 | Erreur StarPage |
-61 | Erreur StarJet |
LIMITATIONS

STARPAGE /MANUEL DE REFERENCE
LIMITATIONS
Les limites actuelles de StarPage sont les suivantes :
- 16384 actions (move, copy, erase, put, etc…)
- 1024 conditions
- 512 Layouts ou macros
- 25 é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).

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
StarPage
Fichier de données
Fichiers de données spécifiés sur la ligne de commande : FFF
Flux
Post-traitement StarPage pour PCL (et PDF) ?
OUI
légendes:
FFF est le nom du fichier PPP est le nom de l’imprimante
Gestion des flux et options de lignes de commandes
Pré-traitement StarPage
Fichier SP
OPTION :
Windows: /cFFF
Unix: -cFFF
Fichiers des logos SFP
Fichier SJP
Traitement StarJet
NON

Utiliser le SPOOLER ?
NON
Fichier PDF
OUI
Document imprimé

Workstream
OPTIONS :
Windows : /dFile=FFFwith / m:pdf
Unix : -dfile=FFF with -m:pdf
OPTIONS :
Windows: /d”PPP”
Unix: -dPPP
OPTIONS :
Windows: /xFFF
Unix: -xFFF
III- OPTIONS DE GÉNÉRATION DE FICHIERS PDF
Options générales
-PAGES | Cette option permet d’afficher chaque fin de page. Elle est particulièrement utile pour les gros fichiers PCL dont le traitement est de longue durée. |
-P | Cette option permet de définir une orientation “Portrait” pour les pages en sortie. |
– L | Cette option permet de définir une orientation “Paysage” pour les pages en sortie. |
-A3 | Cette option permet de définir un format A3 pour les pages en sortie. |
-A4 | Cette option permet de définir un format A4 pour les pages en sortie. |
-LEGAL | Cette option permet de définir un format Legal (14×8.5 inchs) pour les pages en sortie. |
-LETTER | Cette option permet de définir un format Letter (11×8.5 inchs) pour les pages en sortie. |
-M:# | Cette option permet de définir un nombre de pages à traiter car, par défaut, le traitement concerne la totalité du fichier PCL entrant. |
-SC:# | Cette option permet de modifier l’échelle du document sortant. Elle peut être utilisée pour réduire un document afin qu’il soit correctement imprimé. |
- Informations sur le document PDF
-DIA:”..” | Cette option permet de définir l’auteur du document à inclure dans le fichier PDF en sortie. |
-DIC:”..” | Cette option permet de définir le créateur de documents à inclure dans le fichier PDF en sortie. |
-DIK:”..” | Cette option permet de définir le(s) mot(s)-clé à inclure dans le fichier PDF en sortie. |
-DIS:”..” | Cette option permet de définir le sujet du document à inclure dans le fichier PDF en sortie. |
-DIT:”..” | Cette option permet de définir le titre du document à inclure dans le fichier PDF en sortie. |
-CSIZE | Cette option permet de demander à ce que les documents PDF sortants soient les plus compressés possible. |
-CSPEED | Cette option permet de demander à ce que les documents PDF sortants soient compressés le plus rapidement possible. |
-CNONE | Cette option permet de demander à ce que les documents PDF sortants ne soient pas compressés. |
Cryptage et permissions d’accès au document PDF
-EO:”..” | Cette option permet de définir un mot de passe empêchant l’utilisateur de modifier les paramètres de sécurité. |
-EU:”..” | Cette option permet de définir un mot de passe nécessaire à l’ouverture du document PDF. |
-EF:”..” | Cette option permet de définir les restrictions appliqués au document PDF créé. P (bloque l’impression). M (“modifier” – bloque la modification des documents). C (“Copie” bloque la sélection de textes ou de graphiques). A (bloque l’addition ou la modification des notes). |
- Options obligatoires
-RA | Cette option permet de spécifier que les polices téléchargées bitmap PCL soient rendues en tant que bitmaps. |
-BM:0 | Cette option permet de définir la marge minimale non imprimable de la page. |
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:

de commentaires.


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.
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.

La description syntaxique des commandes obéit aux règles suivantes :
<paramètre> Indique un paramètre requis
[…] 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é
Pour activer un fond de page déjà chargé dans la mémoire de l’imprimante (abr.
/AO)
Syntaxe
/ACTIVATE-OVERLAY <overlay>
Paramètre
overlay Numéro logique de la forme devant être réactivée.
Description
Cette commande vous permet de réactiver une forme qui aurait été préalablement chargée dans la mémoire de l’imprimante (voir commande
/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é.

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 sont
détruites et doivent de ce fait être chargées de nouveau.
Exemple
/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
<epais>
<x1>
<y1>
<x2>
<y2>
[SHADE=<grisé>]|[PATTERN=<hachure>] [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 RIGHT
Commentaires
Cette 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 en
<x1>:<y1> et le coin opposé inférieur droit en <x2>:<y2>. Les indications de grisé ou de hachurage utilisent les mêmes valeurs que celles définies pour les commandes /SHADE et /PATTERN.
Exemple
/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 page
- une 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)

80.
Syntaxe
/CHAR <numéro> <nom-police>
[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 NKxxxxx.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 24
- 1 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 Draw
- 1 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.

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 <Escape> 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.
Exemple
/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.


peuvent utilisées grâce au mot clé INTERNAL.
Demande d’ajustement des éléments à la taille de la page.
Syntaxe
/CLIP
Paramètres
Aucun
Commentaires
Les é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
/COLOR <RGB>
Paramè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).
Commentaires
La 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.
Exemple
/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
/COPIES <copies>
Paramètres
copies Valeur numérique située entre 1 et 99
Commentaires
Cette 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…
Exemple
/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.

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
/DENSITY <car-pouce>
Paramètres
car-pouce Nombre de caractères par pouce. Nombre réel jusqu’à 4 décimales
Commentaires
Cette 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.
Exemples
/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
/DUPLEX <mode>
Paramètres
mode Valeur 0, 1 ou 2
Commentaires
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.
Exemple
/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.

Syntaxe
/ECHO <Texte>
Paramètres
Texte Texte libre
Commentaires
Cette commande provoque l’affichage du texte
Exemple
/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 :
#starjet
StarJet / Unix Version 3.0
Copyright (c) APPIC, 1990
Enter command filename: TEST<Return>
3: /LIST
4: /VERTICAL 12 150 100 200
5: /NOLIST
Fin de l’affichage des commandes
Input Lines : 7 Total Warnings : 0
Total Errors : 0 Bytes Written : 253
#
Demande l’affichage de tous les messages en langue anglaise.
Syntaxe
/ENGLISH
Paramètres
Aucun
Commentaires
Cette commande permet d’obtenir les messages de StarJet en anglais.

Demande l’exécution d’un Overlay
Syntaxe
/EXECUTE-OVERLAY <Overlay>
Paramètres
Overlay Numéro de l’Overlay à exécuter
Commentaires
Cette 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.
Exemple
/EXECUTE-OVERLAY 1
Met fin à l’exécution de StarJet.
Syntaxe
/EXIT
Paramètres
Aucun
Commentaires
Cette commande met fin à l’exécution de StarJet.
Positionnement du curseur de l’imprimante en haut de la page logique en cours.
Syntaxe
/FIRSTLINE
Paramètres
Aucun
Commentaires
Cette 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.

Cette commande peut permettre d’obtenir précisément le même alignement sur la première page (logique ou physique) que sur les pages
suivantes.
Exemple
/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.
[SHADE=<grisé>]|[PATTERN=<hachure>]
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)
Commentaires
Cette commande demande à StarJet d’imprimer un cadre sur le pourtour de la page.
Celui-ci peut être un trait noir d’épaisseur <points> (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é.
Exemple
/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).

ou /LANDSCAPE.
Paramètres
Aucun
Commentaires
Cette commande permet d’obtenir les messages de StarJet en français.

Impression d’une grille Haute Définition.
Syntaxe
/GRID
Paramètres
aucun
Commentaires
Cette 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.

Exemples
/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).
Syntaxe
/HORIZONTAL <épaisseur> <x1> <y1> <x2>
é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 page
Commentaires
Une ligne horizontale dont le trait est d’épaisseur <épaisseur> est tracée entre le point de départ à gauche de coordonnées <x1>:<y1> et le point d’arrivée à droite de coordonnées <x2>:<y1>.

Les coordonnées sont limitées à la page logique sur laquelle cette commande s’applique (voir commande /CLIP).
Exemple
/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 page
- une 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 <fichier>
Cette commande permet d’inclure:
- des fichiers plats contenant sources ou données
- des fichiers de commandes StarJet
- des fichiers spool de sortie
Exemples
/PORTRAIT A4
/INCLUDE GENFONTS
/TEXT 4 100 100 ….
Cet 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.
Pour sélectionner un bac d’alimentation papier de l’imprimante.
Syntaxe
/INTRAY <bac>
bac Numéro du bac d’alimentation papier 0: Sélection du bac courant
1: Sélection du bac supérieur 2: Sélection du mode manuel
3: Sélection du bac supérieur avec alimentation manuelle 4: Sélection du bac inférieur
6: Sélection du magasin d’alimentation à enveloppes
Commentaires
Il 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
<font-number>
<Xstart>
<Ystart>
<Xend>
<LineSpacing> <TypeJust> <RotationText> < 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 justification
1=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.
Exemple
/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 [<page-phy> | SIZE=<x> BY <y>] [CONTINUE]
[MAXLINES=<lignes>]
[FORMAT=<pgx> BY <pgy> [ACROSS|DOWN]]
[TOP=<marge>]
page-phy Définit le format physique de la feuille.
Valeurs supportées :
A4 A3
EXECUTIVE LETTER LEDGER LEGAL MONARCH
COMMERCIAL-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 – optionnel
Commentaires
Cette 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.

/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.


Exemple
/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 :
1 | 4 | 7 | 10 |
2 | 5 | 8 | 11 |
3 | 6 | 9 | 12 |

en “page protect mode”. Il est probable que certaines imprimantes de la gamme LaserJet ne supportent pas cette fonctionnalité.
Syntaxe
/LEFT-MARGIN <colonnes>
Paramètres
colonnes Nombre de colonnes devant constituer la marge gauche
Commentaires
Cette 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.
Exemple
/LANDSCAPE A4
/CHAR LP120RRP INTERNAL
/TEXT 1
/DENSITY 20
/LEFT-MARGIN 10
Ligne données 1
Ligne 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
Aucun
Commentaires
Dès lecture de cette commande, StarJet affiche, pour chaque commande lue le numéro des commandes suivi des commandes elles-mêmes.
Exemple
/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 :
#starjet
StarJet/Unix Version 3.0 Command File : TEST
Copyright (c) APPIC, 1990
3: /LIST
4: /VERTICAL 12 150 100 200
Input Lines
Total Warnings : 0
: 4
Total Errors : 0 Bytes Written : 253
#

Passage du mode PCL à un autre mode et vice-versa.
Syntaxe
/MODE [PCL|HPGL]
PCL Mot clé permettant de passer en mode PCL
HPGL Mot clé permettant de passer en mode HPGL
Commentaires
Cette 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.
Exemple
/PORTRAIT A4
/MODE HPGL
in;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 commande
/MODE HPGL. L’appel à la commande /MODE PCL permet de revenir en mode PCL.

Reportez-vous à la documentation de votre imprimante pour plus d’informations.
Commande de préparation à l’émulation de liasse.
Syntaxe
/MULTIDATA
Aucun
Commentaires
Cette commande doit se situer au début de la description de chacun des Overlays utilisés pour émuler des liasses.

Exemple
Cette fonctionnalité n’est disponible qu’en Post-Traitement
/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
…
Ce 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.

/MULTIPART
Commande de définition du Recto-Verso pour l’émulation de liasse.
Syntaxe
/MULTIDUPLEX <i j [k … ]>
i j Mode Duplex utilisé pour chaque copie
Commentaires
Cette 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.

Cette commande ne peut être exécutée que sur des imprimantes supportant le mode Recto-Verso.
Exemple
/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 … ]>
i j Bac de sortie utilisé pour chaque copie
Commentaires
Cette 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é.

Cette commande ne peut être exécutée que sur des imprimantes disposant de plusieurs bacs de sortie.
Exemple
/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 …]]
i j Numéro des Overlays utilisés pour émuler une liasse
Commentaires
Cette 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.

Exemple
Cette fonctionnalité n’est disponible qu’en Post-Traitement
/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.

/MULTIDATA.


Commande de définition du bac d’alimentation pour l’émulation de liasse.
Syntaxe
/MULTITRAY <i j [k … ]>
i j Numéro du bac utilisé pour chaque copie
Commentaires
Cette 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.

plusieurs bacs d’alimentation.
Exemple
/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
Aucun
Commentaires
Dès lecture de cette commande, StarJet cesse d’afficher les commandes qu’il interprète.
Exemple
/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.0
Copyright (c) APPIC, 1990
Enter command filename: TEST<Return>
3: /LIST
4: /VERTICAL 12 150 100 200
5: /NOLIST
Input Lines
Total Warnings : 0
#
: 6
Total Errors : 0 Bytes Written : 253

Pour sélectionner un bac de sortie du papier de l’imprimante.
Syntaxe
/OUTBIN <bac>
bac Numéro du bac de sortie papier 0: Sélection du bac courant
1: Sélection du bac supérieur 2: Sélection du mode manuel
3: Sélection du bac supérieur avec alimentation manuelle 4: Sélection du bac inférieur
6: Sélection du magasin d’alimentation à enveloppes
Exemple
INTRAY 1
OUTBIN 0
CHAR 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]]
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’imprimante
Commentaires
Les 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 “<Esc>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.

Exemple
/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.

Demande à l’imprimante d’effectuer un saut de page logique (Abréviation : /P).
Syntaxe
/PAGE
Aucun
Commentaires
Cette 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.
Exemple
/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 <hachurage> <x1> <y1> <x2> <y2>
hachurage Type de hachurage utilisé.
Valeurs disponibles :
1 : lignes horizontales 2 : lignes verticales
3 : diag. haut droit – bas gauche 4 : diag. haut gauche – bas droit 5 : croisements 1 et 2
6 : 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 page
Commentaires
Une surface quadrillée dont le type de hachurage dépend de la valeur indiquée dans le paramètre <quadrillage> sera comprise entre le coin supérieur gauche se trouvant en <x1>:<y1> et le coin opposé, inférieur droit, en
<x2>:<y2>.
Exemple
/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 document
- une 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 physique
Syntaxe
/PHYSICAL-PAGE
Aucun
Commentaires
Cette 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 tif
Syntaxe
/PICTURE <fichier.tif> page=<numéro_index> x=<coordonnée_horizontale> y=<coordonnée_verticale> rotate=<angle>
Fichier.tif Nom du fichier
page=<numéro_index> Numéro d’index de l’image devant être
imprimé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=<angle> Définit la rotation de l’image selon l’angle défini
Exemple
/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.

- 256 couleurs max
- 300 dpi
- non compressé
- sans ICC (profil couleur)
Définition du format du papier et du sens d’impression
Syntaxe
/PORTRAIT [<page-phy> | SIZE=<x> BY <y>] [CONTINUE]
[MAXLINES=<lignes>]
[FORMAT=<pgx> BY <pgy> [ACROSS|DOWN]]
[TOP=<marge>]
page-phy définit le format physique de la feuille.
Valeurs supportées :
A4
A3 EXECUTIVE LETTER LEDGER LEGAL MONARCH
COMMERCIAL-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 haute
Commentaires
Cette 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.

/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.

traitement
Exemples
/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 :
1 | 2 |
3 | 4 |
5 | 6 |

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
/PREFIX <s>
Paramètres
s Caractère spécial remplaçant la barre de fraction (‘/’)
Commentaires
Il 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 commande
/INCLUDE, le préfixe actif pour le fichier de commandes principal est réactivé à la fin de l’inclusion.

Exemple
/LANDSCAPE A4
/PREFIX #
#BOX 1 100 100 200 200 #PREFIX /
La 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 ##
Cet exemple illustre comment terminer StarJet en remplaçant “//” par “##”, puisque “#” est le préfixe courant.
Envoi d’un Software Reset vers l’imprimante
Syntaxe
/RESET
Aucun
Commentaires
Cette commande provoque l’émission d’une séquence <ESC>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.

Exemple
/RESET
/LANDSCAPE A4
/…
Permet 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
/ROTATE <angle>
Paramè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.
Commentaires
Cette 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.

Exemple
/C1 TR080RRP
/T1 100 1000
/ROTATE 90
Texte imprimé verticalement par rapport à la page
/ROTATE 0
/T1 100 2000
Texte imprimé horizontalement sur la page
Impression d’une surface grisée (Abr. : /S).
Syntaxe
/SHADE <ton> <x1> <y1> <x2> <y2>
Paramè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 page
Commentaires
Cette commande génère une surface grisée.
Cette surface plus ou moins grisée selon la valeur de <ton> (très claire pour une valeur 1 à noire pour une valeur 8) sera comprise entre le coin supérieur gauche se trouvant en <x1>:<y1> et le coin opposé inférieur droit en
<x2>:<y2>.
Exemple
/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 page
une 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 (paire
/OVERLAY 1 .. /OVERLAY 0).
Affichage des polices internes actives.
Syntaxe
/SHOWINT
Paramètres
Aucun
Commentaires
Cette 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.
Exemple
StarJet Unix Version 3.0
Enter command filename :<Return>
Copyright (c) APPIC, 1990
Note: Input file is terminal.
: Terminate input using //
1: /PORTRAIT A4
2: /CHAR 1 HV240BRP
3: /CHAR 2 LP120RRP INTERNAL
4: /SHOWINT<Return>
Following internal fonts active: Font # Definition
2 ~(8U~(s0p10.00h12.00v0s0b35T
5: //<Return>
Input Lines
Total Warnings : 0 #
: 5
Total Errors : 0 Bytes Written : 417
Le 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 automatique
Syntaxe
/SKIP ON|OFF
Paramètres
ON Mise en route du saut de page automatique de l’imprimante
OFF Arrêt de cette fonctionnalité
Commentaires
L’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> [<x1> <y1> [chaîne libre]]
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.
Commentaires
Cette 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”.

Le curseur est positionné aux coordonnées <x1>:<y1> avant le début de l’impression.
Exemple
/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’application
Active une police, positionne le curseur et imprime du texte verticalement (abr.
: /TV).
Syntaxe
/TEXT-VERT <police> <x1> <y1> <y2> <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.
Commentaires
Cette 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“.

Le curseur est positionné aux coordonnées <x1>:<y1> avant le début de l’impression.
Exemple
/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> [<x1> <y1> [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.
Commentaires
Cette 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>
est 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”.

Le curseur est positionné aux coordonnées <x1>:<y1> avant le début de l’impression.
Exemple
/PORTRAIT A4 MAXLINES=60
/CHAR 1 HV120RRP
/CHAR 2 HV120IRP
/T 1
/U 2
Attention !<SHIFT-OUT> 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 <SHIFT-OUT>.
/VERTICAL
Pour définir une ligne verticale (abr. /V)
Syntaxe
/V <epais> <x1> <y1> <y2>
Paramè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 page
Les trois derniers paramètres ne doivent pas dépasser 4 caractères numériques.
Exemple
/V9 100 0 3200
9 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 -140
Dans 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 80
Dans 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.
Commentaires
Bien entendu, ces commentaires ne sont pas pris en compte par le produit et donc, n’apparaissent pas lors de l’impression.

Exemple
/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).
Remplace le caractère Esc dans un fichier de commandes
Commentaires
Il 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.
/CHAR 1 LP080RRP
~&a5L
/* Définition d’une marge gauche de 5 colonnes


N’utiliser le paramètre TOP que si nécessaire. StarJet fait une gestion intelligente de ce paramètre par défaut.