StarPage

INTRODUCTION

Prérequis :

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

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

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

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

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

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

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

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

Ses objectifs sont multiples :

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

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

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

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

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

CONTRAINTES ET PRE-REQUIS

Système d’exploitation

Système d’exploitation

Conseillé

Obsolète

Windows

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

  1. Pour une liste exhaustive des distributions Linux compatibles, merci de contacter le support à l’adresse électronique suivante : support@appic.com.
  2. 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.

La version actuelle de StarPage XML ne supporte pas les requêtes Xpath portant sur des documents XML avec des namespaces (1) déclarés ailleurs que dans la racine.

Pour la prise en compte des caractères accentués, vérifier que le fichier XML comporte une ligne en-tête spécifiant l’encodage sinon, les caractères accentués seront ignorés.
  1. 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.

Exemple 3 en Mode ASCII

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

(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

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

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

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

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

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

Si votre document s’appuie sur un fond de page complexe (Cerfa, tableaux imbriqués, multiples surfaces grisées, etc.), une conversion de ce fond de page en TIF peut être requise pour vous permettre d’obtenir le résultat attendu.

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.

Ces chemins d’accès sont similaires à ceux employés dans un explorateur de

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 ( )
  1. Nœud élément ( )
Nœud attribut ( )
  1. 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 :

  1. le code d’éjection,
  2. le nombre de lignes par page,
  3. la présence d’une chaîne de rupture,
  4. 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 :

  1. Variable Set
  2. Variable field
  3. Variable Zone
  4. 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

  1. : ExpStr

%< : Opérateur de comparaison sur valeurs numériques

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

Dans un tel layout, toutes les “commandes d’impression” sont refusées et génèrent une erreur de syntaxe. Par contre, il est possible d’utiliser les commandes Set, Call macro, Break et Breakspool.
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

Le langage de StarPage n’est pas sensible à la casse.
Form

Cette commande permet d’indiquer le nom du fichier de commandes de définition de fond de page à inclure.

Syntaxe

form “fichier_commandes”

Paramètres

fichier_commandes est le nom du fichier de commandes à inclure

Commentaires

  • Le fichier dont le nom est indiqué sera inclus au début de l’impression. Ce fichier est un fichier de commandes classique, automatiquement généré pour vous par StarJet-Design. Il décrit l’ensemble des fonds de pages et des polices de caractères utilisés.
  • Le fond de page défini sera donc imprimé avec les différentes pages de l’état. Les polices de caractères utilisées pour le reste de ce fichier de commandes font référence à celles définies dans le fond de page

Exemple

form “fichier.sjp”

…………

…………

Prefix

Cette commande permet de remplacer le préfixe des commandes de StarJet.

Syntaxe

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

  • Grâce à cette commande, il est possible de changer le caractère défini comme préfixe des commandes comprises par le programme de génération de l’impression. Cette commande est exécutée après l’exécution de la commande form.
  • Cela permet par exemple d’utiliser le caractère “/”, préfixe par défaut, en tant que caractère imprimable.

Exemple

…………

Put “/10/2002” to 10, 50 Text 1

…………

 Cette ligne de commande génère une erreur car le caractère “/” est par défaut le préfixe des commandes StarJet.

Ce préfixe doit donc être modifié.

…………

prefix ‘!’

…………

Put “/10/2002” to 10, 50 Text 1

…………

…………

La date /10/2002 sera copiée en 10:50 et imprimée en utilisant la police définie avec le numéro 1

Maxlines

Réservée au mode ASCII, cette commande permet d’indiquer un nombre fixe de lignes à traiter sur chaque page de données.

Syntaxe

maxlines <nombre_lignes>

Paramètres

nombre_lignes est le nombre maximum de lignes par

page.

Commentaires

  • Cette fonction sert a découper les pages du fichier de données entrant.
  • Cette fonction est essentielle lorsque le fichier à traiter ne contient pas d’autre condition d’éjection de page.

Exemple

…………

maxlines 66

…………

Dès que StarPage, en l’absence de toute autre condition d’éjection de page (cf § Découpage des pages), aura rencontré 66 lignes, il éjectera une nouvelle page.

Cette condition d’éjection peut être combinée à d’autres conditions.
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

…………

Cette condition d’éjection peut être combinée à d’autres conditions.
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

  • Une commande d’environnement (cf Chapitre Les commandes d’environnement) définie à l’aide de la commande Default sera valide pour tous les cas de figure ou une commande de même type n’est pas définie.
  • Si aucune commande d’environnement ne figure dans un fichier de commandes StarPage, les commandes figurant dans le fichier de commandes de définition du fond de page indiqué dans la commande Form, restent

valides.

Exemple

…………

Default Portrait A4 Format=2 by 3 Default copies 3

Default duplex 0

…………

Par défaut, les différentes pages de cet état seront imprimées en mode portrait sur du papier A4. Six pages logiques seront imprimées sur chaque page physique.

Chaque page physique sera dupliquée trois fois. Le mode duplex est invalidé.

_MAXLOOP

Cette commande permet d’arrêter une boucle après un grand nombre d’itérations.

Syntaxe

_MAXLOOP <Entier>

Paramètres

Entier est une valeur entière qui, si elle est égale à zéro,

désactive le _MAXLOOP.

Commentaires

  • Lorsque la boucle d’itération est stoppée, un message d’avertissement est généré.
  • Par fichier de commandes, il n’existe qu’une valeur de

_MAXLOOP.

  • La valeur par défaut du _MAXLOOP est de 10 000

Exemple

…………

_MAXLOOP 5000

While TRUE # une condition qui est toujours vraie

… # ensemble de commandes…

EndWhile

…………

Cette boucle s’arrêtera après 5000 itérations Le message suivant est alors généré :

Avertissement : une boucle WHILE ou FOR a été stoppée au bout de 5000 tours

Local

Les trois commandes, Local Numbers separator, Local numbers decimal et Local numbers format permettent d’indiquer les modes d’impression par défaut des variables numériques.

Local numbers separator

Définition du séparateur par défaut des milliers

Syntaxe

local numbers separator <sep>

Paramètres

sep représente un caractère

Commentaires

  • sep est indiqué entre quotes

Exemple

…………

local numbers separator ‘.’

…………

Local numbers decimal

Définition du séparateur par défaut des décimales

Syntaxe

local numbers decimal <sep>

Paramètres

sep représente un caractère

Commentaires

  • sep est indiqué entre quotes

Exemple

…………

local numbers decimal ‘,’

…………

Local numbers format

Définition du formatage par défaut des variables numériques

Syntaxe

local numbers format “formatage”

Paramètres

formatage représente le format modèle des valeurs

numériques

Commentaires

  • “formatage” est indiqué entre double-quotes

Exemple

…………

local numbers format “0,00”

…………

Les nombres ont obligatoirement 2 décimales c’est à dire que 4,1 s’écrira 4,10.

…………

local numbers format “0,##”

…………

La limite est fixée à 2 décimales c’est à dire que 4,1 s’écrira 4,1 et 3,126 sera converti en 3,13.

…………

local numbers format “# ##0,00”

…………

Le # peut aussi servir à séparer les données en groupes c’est à dire que 1000 s’écrira 1 000.

XMLDoc Level n

Réservée au mode XML, cette commande permet de définir un projet StarPage gérant un flux XML en entrée ainsi que le niveau de découpage de ce flux.

Syntaxe

XMLDoc Level n

Paramètres

n est le niveau de découpage du flux XML en différents documents.

1 : le flux représente un seul et même document.

n : chaque nœud de niveau n représente un document.

Exemple

…………

XMLDoc Level 3

Chaque nœud de niveau 3 représente un document.

DECLARATION DE

VARIABLES

DECLARATION DE VARIABLES

Value

Cette commande permet de déclarer les variables et cela, que ce soient pour des variables Set, Field ou Zone.

Variable Set

La commande Value permet de déclarer les variables créées à l’aide la commande Set.

Syntaxe

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

  • Une valeur peut être affectée à la variable lors de sa création à l’aide de la commande Set.

Exemple

…………

Value exemple1 Is Var

…………

La variable, nommée exemple1, est une variable initialisée en chaîne vide. Elle pourra être utilisée pendant tout le reste du traitement et son contenu être modifié par une commande Set.

…………

Value exemple2 Is Var “Info”

…………

Une valeur par défaut est affectée à la variable,

exemple2, à savoir la chaîne de caractères Info.

Variable Zone

Réservée au mode ASCII, la commande Value permet de déclarer des variables permettant d’extraire les informations d’une zone de la page de données.

Syntaxe

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

  • Une valeur par défaut peut être affectée à la variable. Toutefois, lors du traitement de la page, cette valeur sera écrasée par la valeur extraite de la zone. L’exploitation d’informations contenues dans les pages de données peut, par exemple, permettre d’imprimer un nombre d’étiquettes dépendant d’une valeur située sur les pages de données.
  • Si un numéro de page est indiqué, la valeur de la zone ne sera affectée à cette variable que lors du traitement de la page de données spécifiée.

Exemple

…………

Value taux Is Zone L1:C2,14 Page 2

…………

taux est une variable de type Zone, son contenu étant lié aux informations contenues dans la page numéro2 de l’état traité, dans la zone indiquée, ligne 1, colonne 2 à

14. Cette valeur peut être utilisée dans une des pages suivantes lors d’un calcul impliquant la valeur taux.

Variable Field

Réservée au mode ASCII, la commande Value permet de déclarer une variable, celle-ci permettant d’extraire les informations d’une page de données à partir d’une séquence de caractères suffisamment affinée pour en permettre l’identification.

Syntaxe

Value <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 1 indique que seule la ligne 1 doit être parcourue en recherche.

LINE -10 indique que la recherche doit être effectuée sur les lignes 1 à 10 de la page.

LINE 10-25 indique que la recherche se situe sur une plage située entre la ligne 10 et la ligne 25.

  • COL 1 indique que le premier caractère de la chaîne est localisé colonne1.

COL 10-25 indique que le premier caractère de la séquence est situé entre la colonne 10 et la colonne 25.

  • Une fois, la chaîne localisée, les données peuvent être extraites soit en définissant un caractère de début, soit en spécifiant le nombre de colonnes entre le début de la chaîne et le début de l’information recherchée. Il est aussi possible de définir la fin du champ, soit par un caractère stop, ou en précisant la longueur du champ.
  • Une variable de type Field est, par définition volatile,

c’est à dire que son contenu n’est pas conservé d’une page de données à l’autre.

Exemple

…………

Value exemple Is Field “TOTAL” START ‘!’ STOP 12

…………

exemple est une variable de type Field se situant après la chaîne de caractères TOTAL, commençant

après un point d’exclamation et ayant une longueur maximale de 12 caractères.

Pour avoir des informations sur la variable Field “exemple” les attributs suivants peuvent être utilisés :

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

  • Il est possible de déclarer un tableau pour une variable seulement en mettant Début = Fin
  • Les variables de type tableau peuvent être utilisées de la même façon que les variables de type Set c’est à dire dans toutes les expressions ainsi que dans les instructions Set et comme indice d’une boucle For.
  • En cas de tentative d’accès en dehors des bornes, un message de Warning est généré à l’exécution et une valeur vide est renvoyée.

Exemple

…………

Value exemple Is Array [1–10]

…………

Put exemple[IndexEnCours] to 100, 110 text 1

Set “toto” to exemple[5]

FindNext

Réservée au mode ASCII, cette commande permet d’itérer la lecture des occurrences des variables Field dans la page de données.

Syntaxe

VarField.FindNext

Paramètres

VarField représente une variable de type Field

Commentaires

  • La recherche de la première occurrence du champ étant automatique, il ne faut donc pas faire appel à FindNext pour y accéder.

Exemple

…………

WHILE exemple.index%<> 0

# tant que le champ est trouvé (cf § Variable Field pour la définition d’exemple.index).

PUT exemple to

# utilisation de la valeur trouvée

exemple.FindNext

# recherche de l’occurrence suivante

ENDWHILE

…………

Ceci est un exemple de recherche de toutes les occurrences d’une variable Field appelé exemple

Reset

Réservée au mode ASCII, cette commande permet de réinitialiser la valeur de la variable Field suite à la recherche, dans une page de données, de toutes les occurrences de cette variable.

Syntaxe

VarField.Reset

Paramètres

VarField représente une variable de type Field

Commentaires

  • Cette commande est donc utilisée lors de recherches consécutives dans une même page de données.
  • A chaque début de traitement, il est conseillé de réinitialiser la variable Field.

Exemple

…………

exemple.Reset

WHILE exemple.index%<> 0

# tant que le champ est trouvé (cf § Variable Field pour la définition d’exemple.index).

PUT exemple to

# utilisation de la valeur trouvée

exemple.FindNext

# recherche de l’occurrence suivante

ENDWHILE

…………

exemple est réinitialisé à chaque début de traitement

DECLARATION DE 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

  • condition, nommée comme indiqué, est créé dans les tables internes de StarPage. Ce nom peut ensuite être utilisé en conjonction avec la majorité des commandes afin d’indiquer un traitement particulier si la condition est considérée comme vraie.
  • <expression booléenne> doit obéir à la syntaxe définie.
  • Il existe des conditions pré-définies dans le logiciel, évoluant (si nécessaire) en fonction du déroulement des opérations (cf § Condition).

Exemple

condition condfacture is L10:C20,26 = “FACTURE”

La première condition, nommée condfacture sera considérée comme étant vraie si, la chaîne de caractères “FACTURE” se trouve dans une page de données ligne 10 et colonne 20 et, quelque soit la casse.

L’appel à la condition est possible en indiquant le nom de la condition :

…………

condition condfacture is L10:C20,26 = “FACTURE”

[condfacture] Put “Montant total” to 100,120 text 1

…………

INSTRUCTIONS ET COMMANDES DE CONTRÔLE

LES INSTRUCTIONS et COMMANDES DE CONTRÔLE

Généralités

Chaque instruction ou commande de contrôle peut être conditionnée c’est à dire précédée d’une condition.

Instruction

Une instruction est une étape de programmation qui indique à l’ordinateur les actions qu’il doit effectuer.

Il en existe douze :

  1. Break
  2. Breakspool
  3. Call Macro
  4. Call overlay
  5. Copy
  6. Erase
  7. ExitBlock
  8. Move
  9. PDF417
  10. Put
  11. GetParagraphInfo
  12. Set
Break

Cette commande permet d’arrêter StarPage lors de l’exécution d’un layout de type compute (cf Chapitre Compute).

Syntaxe

[[<ExpBool>]] Break

Paramètres

ExpBool représente une expression booléenne définissant la condition.

Commentaires

  • Cette commande permet un arrêt du déroulement de StarPage. Il est ainsi possible, après avoir testé une condition qui serait liée au contenu de vos données ou liée à une variable d’environnement, d’interrompre

purement et simplement le traitement en cours.

Breakspool

Cette commande permet, lors de l’exécution d’un layout de type compute (cf Chapitre Compute), d’arrêter le workstream(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

  • Cette commande permet une fermeture immédiate du fichier spool généré par StarPage, associé à la réouverture d’un nouveau fichier. Automatiquement, StarPage régénère l’environnement nécessaire à l’impression correcte du document.
  • Cette fonctionnalité peut être particulièrement utile lorsque le traitement est effectué sur un très gros fichier et que l’on souhaite paralléliser l’édition physique en la répartissant sur différentes imprimantes.

(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

  • Une macro appelée doit avoir précédemment été définie

Exemple

…………

MACRO Calcul_Euro

Set 6.56 to Taux Euro

..

Layout Facture

..

..

Call Calcul_Euro

…………

Call Overlay

Cette commande permet d’appeler une séquence de commandes de fond de page.

Syntaxe

[[<ExpBool>]] call-overlay <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

  • Cette commande permet, lors de la mise en page des informations, d’appeler dynamiquement un overlay (un ensemble de commandes de fond de page) défini dans le fichier de commandes StarJet (.sjp)
  • Un tel appel, contrairement à la commande use-overlay, est purement ponctuel, et peut être déclenché par un test effectué sur les données.

Exemple

…………

condition condfacture is L5:C3,9 = “FACTURE” condition total is L48:C2 = “T”

..

layout fac when condfacture use overlay 1

[total] call-overlay 3

…………

si la chaîne de caractères FACTURE est détectée en ligne 5 colonne 3 à 9, alors l’overlay 1 (fond de page facture) est activé. Si, lors du traitement de cette page, la condition TOTAL est considérée comme vraie (c’est à dire qu’une lettre T est contenue sur la ligne 48, colonne

2) alors le schéma dessiné dans l’Overlay 3 est ajouté sur le fond de page FACTURE.

Copy

Réservée au mode ASCII, cette commande permet de copier et ceci, sans l’effacer de la source un bloc de données.

Syntaxe

Paramètres

Commentaires

[[<ExpBool>]] copy <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)

  1. représente le point sur l’axe des X PCL ou doit commencer la copie du bloc
  2. représente le point sur l’axe des Y PCL ou doit commencer la copie du bloc

t représente la police à utiliser pour imprimer le bloc angle représente l’angle de rotation du bloc (valeurs possibles : 0, 90, 180, 270)

shade représente le niveau de grisé à utiliser lors de l’impression

d représente la densité à utiliser pour imprimer le bloc

ls représente l’espacement interligne, exprimé en points PCL, pour ce bloc.

  • Cette commande peut exécuter deux actions à la fois :
– définir, sur la matrice d’entrée représentée par la page de données, un bloc de données à copier.

– définir aussi le mode d’impression de ce bloc.

  • Le positionnement exprimé en points PCL correspond au coin inférieur gauche du premier caractère imprimé. Il est autorisé d’utiliser des paramètres dynamiques ou des variables pour définir ces deux points.
  • Le numéro de police indiqué dans la commande text permet de définir la police de caractères à utiliser pour imprimer ce bloc. Ce numéro est celui défini dans le fichier de commandes StarJet (.sjp).
  • Le paramètre density, s’il est utilisé, permet de définir la densité avec laquelle ce bloc sera imprimé. Ce paramètre est exprimé en nombre de caractères par pouces et n’est utilisable qu’avec des polices de caractères à espacement fixe.

Commentaires

  • Le paramètre linespacing permet de définir, en points PCL l’espace interligne à utiliser pour l’impression des différentes lignes de ce bloc de données.
  • La fonction Copy n’est active que pour le layout dans lequel elle a été insérée.

Exemple

…………

copy L10, 12 : C10, 19 to 1000, 200 text 2

linespacing 100

…………

Le bloc de données d’entrée commençant ligne 10 colonne 10, bloc de 10 caractères de long et de 2 lignes de haut (donc jusqu’à la colonne 19, ligne 12) sera copié en 1000:200 (points PCL sur la page) et imprimé en

utilisant la police définie avec le numéro 2, et en laissant entre chaque ligne 100 points PCL.

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

  • Cette commande efface ( rend indisponible) toutes les informations contenues dans ce bloc sur la page de données en cours.
  • Cette fonction n’est active que pour le layout dans lequel elle a été insérée. Après exécution de ce layout, les données réapparaissent.

Exemple

…………

erase L6,7:C1,132

…………

Le bloc de données situé ligne 6 de la première colonne à la colonne 132 est supprimé.

SCHEMATISATION DE LA FONCTION ERASE : SUPPRESSION D’UN MORCEAU DE BLOC AVANT LA COPIE DU BLOC DANS SA TOTALITE

Data A imprimer

Nom_Facture

Monsieur Dupont

32, rue des processions 91240 Saint Michel sur orge

2- Copy

Tel : 044.56.23.10

1- Erase

ExitBlock

Cette commande permet selon les cas, de sortir d’un bloc d’instructions (comme une boucle) ou d’arrêter l’exécution d’un layout de n’importe quel type.

Syntaxe

[[<ExpBool>]] ExitBlock

Paramètres

ExpBool représente une expression booléenne définissant

la condition.

Commentaires

  • Cette commande permet de sortir :
    • d’une boucle FOR
    • d’une boucle WHILE
    • d’un layout de n’importe quel type (page, overlay, compute, ou macro).
  • Les instructions IF – ENDIF et SELECT ne sont pas considérées comme des blocs par la commande ExitBlock. Dans ce cas, l’instruction ExitBlock

passe au travers de façon transparente et remonte jusqu’au premier bloc appelant.

Exemple

…………

Layout Tata

While ConditionBoucle If ArrêtBoucle

ExitBlock # sort de la boucle EndIf

EndWhile

…………

Move

Réservée au mode ASCII, cette commande permet de déplacer un bloc de données de la matrice d’entrée.

Syntaxe

[[<ExpBool>]] move <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)

  1. représente le point sur l’axe des X PCL ou doit commencer l’ajout de chaîne de caractères
  2. représente le point sur l’axe des Y PCL ou doit commencer l’ajout de chaîne de caractères

t représente la police à utiliser pour imprimer le bloc angle représente l’angle de rotation du bloc (valeurs possibles : 0, 90, 180, 270)

shade représente le niveau de grisé à utiliser lors de l’impression

d représente la densité à utiliser pour imprimer le bloc

ls représente l’espacement interligne, exprimé en points

PCL, pour ce bloc

Commentaires

  • Cette commande exécute deux actions à la fois :
  • Elle définit, sur la matrice d’entrée représentée par la page de données, un bloc d’information à déplacer
  • Elle définit le mode d’impression de ce bloc.
  • Le positionnement exprimé en points PCL correspond au coin inférieur gauche du premier caractère imprimé. Ce bloc est déplacé vers l’adresse indiquée sur la page.
  • Le numéro de police indiqué dans la commande text permet de définir la police de caractères à utiliser pour imprimer ce bloc. Ce numéro est celui défini dans le fichier de commandes StarJet (.sjp).
  • Le paramètre density permet de définir la densité avec laquelle ce bloc sera imprimé. Ce paramètre est exprimé en nombre de caractères par pouces et n’est utilisable qu’avec des polices de caractères à espacement fixe.
  • Le paramètre linespacing permet de définir, en points PCL l’espace interligne à utiliser pour

l’impression des différentes lignes de ce bloc de données.

Exemple

…………

move L2,5:C10,40 to 1800,600 text 2

linespacing 100

…………

Le bloc de données d’entrée commençant colonne 10 ligne 2, bloc de 30 caractères de long et de 3 lignes de haut (donc jusqu’à la colonne 40 et la ligne 5) sera déplacé en 1800:600 (points PCL sur la page), imprimé en utilisant la police définie avec le numéro 2, et en laissant entre chaque ligne

100 points PCL.

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 :

  • pas de préfixe signifie une chaîne standard ;
  • un préfixe ‘0x’ signifie une séquence de nombres hexadécimaux, chaque nombre hexadécimal étant constitué de deux chiffres ;
  • un préfixe ‘0d’ signifie une séquence de nombres décimaux, chaque nombre décimal étant constitué de trois chiffres.

x,y représentent les coordonnées du coin supérieur gauche du symbole DataMatrix.

ModuleWidth est une valeur entière représentant la taille de chaque module. Par défaut, la taille du module est de 6 (environ 20 millièmes de pouce) et les valeurs acceptés sont de 3 à 12.

Rows est une valeur entière qui représente le nombre de lignes du symbole.

Cols est une valeur entière qui représente le nombre de colonnes du symbole.

Par défaut, le nombre de modules par ligne et par colonne est déterminé automatiquement pour avoir le plus petit symbole carré possible.

Exemple

…………

Bar_DataMatrix (L8:C1,60) To 1335, 256 Text

5 ModuleWidth 5 Rows 26 Cols 26

…………

Messages d’erreur

Messages d’erreurs susceptibles d’être générés par une commande incorrecte

Messages

Causes

rows already defined

Rows est spécifié plusieurs fois.

data columns already

defined

Cols est spécifié plusieurs fois

unit width already

defined

ModuleWidth est spécifié plusieurs fois

Messages d’erreurs susceptibles d’être générés par un problème de codage

Messages

Causes

DataMatrix : encoding error

Le processus d’encodage des données a échoué

DataMatrix : correction code generation problem

Le processus de génération de codes de correction d’erreur a échoué

Put

Cette commande permet d’ajouter une chaîne de caractères ou le résultat d’un traitement, ainsi que de l’aligner à sa convenance. L’expression string, ou paragraphe, peut être créé de manière dynamique et scindé selon différentes conditions.

Syntaxe

[[<ExpBool>]] put <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)

  1. représente le point sur l’axe des X PCL ou doit commencer l’ajout de la chaîne de caractères ou du résultat de traitement.
  2. représente le point sur l’axe des Y PCL ou doit commencer l’ajout de la chaîne de caractères ou du résultat de traitement.

Justify est le mot-clé utilisé pour justifier (aligner à droite et à gauche) l’expression string c’est à dire que toutes les lignes, sauf la dernière, ont la même longueur.

AlignLeft est le mot-clé utilisé pour aligner à gauche l’expression string c’est à dire que toutes les lignes démarrent à la même coordonnée X.

AlignRight est le mot-clé utilisé pour aligner à droite l’expression string c’est à dire que toutes les lignes finissent à la même coordonnée X.

Center est le mot-clé utilisé pour centrer l’expression string c’est à dire que le milieu de toutes les lignes est placé sur la même coordonnée X.

Width est la largeur du paragraphe exprimé en points PCL.

Cstr représente une contrainte de scission du paragraphe (nombre de lignes maximum du paragraphe exprimé en points si précédé de MaxLinesCount, hauteur maximale du paragraphe exprimée en points PCL si précédé de MaxHeight ou coordonnée y de fin du paragraphe exprimée en points PCL si précédé de MaxClipy)

t représente la police à utiliser pour imprimer la ligne angle représente l’angle de rotation de la ligne (valeurs possibles : 0, 90, 180, 270)

ls représente l’espacement entre deux lignes, exprimé en points PCL.

shade représente le niveau de grisé à utiliser lors de l’impression.

d représente la densité à utiliser pour imprimer la ligne.

 expression string et y peuvent aussi être précédés par @ permettant de modifier l’identifiant de variable (cf exemple).

Exemple 1

…………

Put L1:C10, 20 To 10, 20 Text 1

…………

…………

Put “Il y a” + DataLinesNumber + “lignes sur cette page” To 100, 200 Text 7 Density 9

…………

La chaîne de caractères “Il y a (nombre de lignes de données dans la page (cf § Variable prédéfinie) lignes sur cette page” sera copiée en 100:200 et imprimée en utilisant la police définie avec le numéro 7 et une densité de 9 caractères par pouce.

…………

Put “Anciennement Raguse, avec son histoire vénitienne puis turque, Dubrovnik est une ville et un port de Croatie sur l’Adriatique. Elle fut fondée au VIIème siècle par des Grecs d’Épidaure fuyant les invasions slaves et avares.” To 500, 500 Justify Width 900 Text 4 LineSpacing 50

…………

…………

Put “Anciennement Raguse, avec son histoire vénitienne puis turque, Dubrovnik est une ville et un port de Croatie sur l’Adriatique. Elle fut fondée au VIIème siècle par des Grecs d’Épidaure fuyant les invasions slaves et avares.” To 500, 500 Justify Width 900 MaxLinesCount 3 Text 4

LineSpacing 50

…………

La chaîne de caractères sera justifiée et copiée en 500:500 sur une largeur de 900 points PCL puis, imprimée en utilisant la police définie avec le numéro 4. L’espace entre les lignes est de 50 points PCL et le nombre maximum de lignes du paragraphe est de 3.

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

  1. Text 4 LineSpacing 35

Put “pbegin =” To 147, 1269 Text 1

Put pbegin To 267, 1363 Justify Width 537

MaxLinesCount 3 Text 4 LineSpacing 35

Put “pend =” To 137, 1681 Text 1

Put pend To 257, 1775 Justify Width 537 Text

  1. LineSpacing 35

…………

Le résultat est affiché ci-dessous :

Ajout 2 nouveau paramètres optionnels : [Start sx, sy] [End ex, ey]

Syntaxe1 :

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

  • Cette commande permet d’évaluer l’expression et d’en affecter le résultat dans la variable indiquée.
  • expression peut être n’importe quelle suite d’opérations se conformant aux syntaxes (cf Chapitre Expression String et Chapitre Expression Booléenne)
  • La variable doit être préalablement définie par une commande value.

Exemple

…………

Value Line_Nr Is Var Value Line_Start Is Var

Set “3” to Line_Start Set Line_Start to Line_Nr

…………

De plus, la commande Set permet d’affecter une valeur à un élément du tableau si la variable est un identifiant du tableau dont l’indice est entre crochets [ ].

Value Exemple Is Array [1–10]

Set “toto” to Exemple[5]

Structure de contrôle

Ces structures permettent de contrôler l’exécution répétée d’une séquence d’instructions jusqu’à ce qu’une condition logique soit satisfaite.

Il en existe 4 :

  • For
  • While
  • If
  • Select…Case
For

Cette commande permet d’exécuter un bloc de programme un nombre prédéterminé de fois.

Syntaxe

FOR variable = <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

  • Cette commande permet d’effectuer toutes les instructions situées entre For et Endfor tant que la variable indiquée n’est pas égale à la valeur ou à l’expression définie comme end.
  • La valeur de la variable évoluera conformément à la valeur indiquée derrière le mot-clef STEP.

Exemple

…………

Value nb_lig Is Var

..

FOR nb_lig = 29 TO 56 STEP 1

Put L(nb_lig):C(2,40) To 30, 1500 %+

(nb_lig %- 29) %* 48 Text 11 Density 10 ENDFOR

…………

While

Cette commande permet d’exécuter un bloc de programme tant que l’expression booléenne sera vraie.

Syntaxe

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

  • Cette commande permet d’effectuer toutes les instructions situées entre While et EndWhile tant que

l’expression booléenne est vraie.

Exemple

…………

Value Libelle_banniere Is Zone L2:C1,200 Page 1

..

WHILE NOT BLANK(Libelle_banniere)

Put Cut( Libelle_banniere, 80) To 200,

1580 %+ (Ordonnee %- 1) %* 90 Text 7 Set Ordonnee %+ 1 to Ordonnee

ENDWHILE

…………

If

Cette commande permet d’exécuter un groupe d’instructions de manière conditionnelle.

Syntaxe

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

  • Si la condition indiquée dans le IF est vérifiée, les instructions qui suivent sont exécutées.
  • En cas de présence d’un ELSE associé, les instructions suivant le ELSE seront exécutées si l’expression n’est pas vérifiée.

Exemple

…………

Condition Der_Page is L23:C72,73 =L23:C76,77

..

IF Der_Page

Call Overlay 2

Copy L63,63:C56,68 To 230, 3300 Text 10

Density 10

Put Format( L64:C34,38, “#0,0”) To 730,

3300 Text 10 Density 10

Copy L64,64:C56,68 To 960, 3300 Text 10

Density 10

Copy L65,65:C56,68 To 1440, 3300 Text

11 Density 10

Put L65:C56,68 %/ EURO To 2050, 3300

Text 11 Density 10

ELSE

Call Overlay 3

Put REPORT To 1760, 3250 Text 11

Density 10 ENDIF

…………

Select…Case

Cette commande permet d’exécuter un groupe d’instructions de manière conditionnelle.

Syntaxe

SELECT CASE <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

  • Cette instruction permet, pour une information donnée et définie par expression string, de définir l’exécution que l’on veut voir appliquer selon son contenu. expression string est une expression de type chaîne de caractères (cf Chapitre Expression String).
  • Si aucune adéquation n’est trouvée, il est possible de demander l’application d’une instruction différente (ou un bloc d’instructions) par l’utilisation d’un CASE ELSE.

Exemple

…………

Value SOCIETE Is Zone L1:C1,6

..

SELECT CASE SOCIETE CASE “CENTAU”:

Put “!” To 1920, 382 Text 18

Put “CENTAURE” To 1780, 480 Text 15 CASE “AKWABA”:

Put “!” To 1920, 292 Text 6

Put “AKWABA” To 1830, 480 Text 15 CASE ELSE

ENDSELECT

…………

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 :

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

  • Une macro appelée doit précédemment être définie.
  • Les macros non imprimables présentent la possibilité de faire appel à d’autres macros du même type.
  • Les macros imprimables présentent la possibilité de faire appel à toutes les macros, quel que soit leur type.

Exemple

…………

Macro Calcul_Euro Set 6.56 to Taux Euro

..

Macro imprime_Adresse Printable Put FieldAdresse1 to 100, 200

Put FieldAdresse2 to 100, 250

..

..

..

Call Calcul_Euro

…………

Dans la définition d’une macro, il n’y a pas de notion de terminaison. Elle s’arrête après la dernière ligne de commande.

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

  • La commande Layout donne à l’utilisateur la possibilité d’affecter un nom à un nouveau layout de type page. Le mot-clé Layout doit impérativement être suivi par un nom unique. Seule une autre commande Layout, Overlay, Compute ou la fin du fichier met fin au layout dont la description commence par cette commande.
  • Il est possible de conditionner un layout en utilisant une expression booléenne.
  • Il est également possible de demander une exécution répétée de ce layout, notamment, pour permettre l’édition d’étiquettes. Ainsi, après chaque exécution du layout, la valeur Step sera ajoutée (présence du mot clef Increase)ou soustraite (présence du mot clef Decrease) à la variable set et ce, jusqu’à ce que la valeur indiquée comme borne soit atteinte. La valeur Step affecte donc le nombre d’itérations.
  • Le mot clef Restore demande à ce que la valeur initiale de la variable soit initialisée après traitement de ce layout. Pendant l’exécution de ce layout, la variable StepNumber est disponible pour déterminer quel est le numéro de l’exécution en cours. Si la valeur borne est

égale à 0, le layout n’est pas exécuté. Si le Step n’est pas indiqué, sa valeur par défaut est de 1.

Exemple

…………

Value LoopVar Is Var “0”

..

Layout My_Layout With LoopVar RESTORE INCREASE “2”

..

..

..

…………

…………

Layout BANNIERE When SourcePageNumber %= 1

..

..

..

…………

Dans la définition d’un layout, il n’y a pas de notion de terminaison. Il s’arrête dès qu’un autre layout débute ou après la dernière ligne de commande s’il n’y a pas d’autre layout.

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

  • Au sein d’une telle structure, l’utilisation de la commande Use-Overlay est interdite.

Exemple

…………

# Définition des conditions

Condition cas1 is L2:C3, 9 = “FACTURE”

..

# Définition d’un Overlay Overlay 25 when cas1 Portrait A4

Move L1,5 : C10,100 to 100 300 text 2

..

# Définition d’un Layout Layout FACT when TRUE Use overlay 1

Call overlay 25

Move L6,60 : C1,132 to 100 800 text 3

…………

Si la zone commençant en ligne 2, colonne 3 contient la chaîne de caractères “FACTURE”, le layout type Overlay

25 est créé. Il est orienté en portrait et contient les informations contenues ligne 1 à 5, de la colonne 10 à la colonne 100. Dans tous les cas (c’est à dire pour toutes les pages de données), le Layout FACT sera appliqué.

COMPUTE

COMPUTE

Cette commande permet de déclencher un traitement sur les variables sans envoyer d’information vers l’imprimante (cf § Layout type Compute).

Syntaxe

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

  • Il est également possible de demander une exécution répétée de ce compute. Ainsi, après chaque exécution du layout, la valeur Step sera ajoutée (présence du mot clef Increase) ou soustraite (présence du mot clef Decrease) à la variable set et ce, jusqu’à ce que la valeur indiquée comme borne soit atteinte. La valeur Step affecte donc le nombre d’itérations.
  • Le mot clef Restore demande à ce que la valeur initiale de la variable soit initialisée après traitement de ce layout. Pendant l’exécution de ce layout, la variable StepNumber est disponible pour déterminer quel est le numéro de l’exécution en cours. Si la valeur borne est égale à 0, le layout n’est pas exécuté. Si le Step n’est pas indiqué, sa valeur par défaut est de 1.
  • Toutes les “commandes d’impression” sont refusées et génèrent une erreur de syntaxe. Dans un tel layout, il n’est possible d’utiliser que les commandes Set, Call

macro, Break et Breakspool.

Exemple

…………

# Définition de la variable chaîne Value info is VAR

# Définition des conditions

Condition cas1 is L2:C3, 9 = “FACTURE”

# Définition d’une structure Compute Compute c_cas1 when cas1 #Affectation d’une valeur à info Set L2:C10,18 to info

# Définition d’un Layout Layout FACT when TRUE Use overlay 1

# Impression du contenu de la variable info Put info to 50 800 text 1

Move L6,60 : C1,132 to 100 800 text 3

…………

Si la zone commençant en ligne 2, colonne 3 contient la chaîne de caractères “FACTURE”, le traitement compute est effectué. Ce traitement affecte à la variable info la chaîne de caractères contenue dans la page de donnée (ligne 2 colonne 10 à 18). A l’issue de ce traitement de type compute, la page de données n’est pas considérée comme traitée. Elle reste donc disponible pour

l’exécution d’un Layout ultérieur.

EXPRESSION STRING

EXPRESSION STRING

Définition

L’expression String manipule la donnée de base, la chaîne de caractères. Celle-ci recouvre différentes possibilités. Ce peut être :

☼ des données provenant de la page en cours de traitement sous forme d’ExpLC

☼ une chaîne de caractères devant apparaître sur l’état final

☼ une chaîne de caractères résultant de l’exécution d’une fonction

☼ une concaténation de chaînes de caractères

☼ une des variables prédéfinies ou créées dans StarPage

☼ le contenu d’une variable d’environnement (↔ variable globale au système) peut être également exploité et celles-ci peuvent également être concaténées.

☼ enfin, la combinaison de toutes ces possibilités.

Opérateurs

Les expressions String manipulent deux types d’opérateurs : 1- Les Opérateurs de calcul sur valeurs numériques

2- Opérateur de calcul sur chaîne de caractères

Opérateurs de calcul sur valeurs numériques

Les opérateurs de calcul sur valeurs numériques reconnus et supportés dans StarPage sont :

%+

Addition

%-

Soustraction

%*

Multiplication

%/

Division

%mod

Modulo

%div

Division entière

%%mod

Modulo pour très

grand nombre (>=2 147 483 648)

%%div

Division entière pour

très grand nombre

(>=2 147 483 648)

Opérateur de calcul sur chaîne de caractères

Le seul opérateur de calcul est l’opérateur de concaténation entre chaînes de caractères :

+

Concaténation

Il existe une limite pour le diviseur. Il ne doit pas être supérieur à 214 748 364.
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,

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

  1. In
  2. 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

  1. FILLER
  2. GED
  3. 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 :

  1. Une expression Booléenne simple : ExpBool
  2. 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 :

  • BAR_EAN13(DATA [ , start, middle, end, first1, first2, first3 ])
  • BAR_EAN13HR(DATA [ , start, middle, end, first1, first2, first3 ])

Paramètres :

  • DATA : Toute expression string supportée par StarPage et répondant aux exigences du code à barres EAN13 .
  • Start, Middle, End, First1, First2, First3 : voir le paragraphe “Remarques avancées”.

Remarques :

Différences entre la fonction standard et la version “HR”: le code pays est ajouté sous une forme “lisible”.

Polices requises

BAR_EAN13 : police ean13.sfp police EA040rrp.sfp

police Ean8-13_20mm.sfp police Ean8-13rrp_20mm.sfp

BAR_EAN13HR : police EAN13hr.sfp

Exemple d’utilisation

Ean13

Dans le fichier sjp :

/Char 3 ean13.sfp

Dans le fichier sp :

Put Bar_EAN13(“0051111428177”) To 363,

303 Text 3

Ean13Hr

Dans le fichier sjp :

/Char 5 EAN13hr.sfp

Dans le fichier sp :

Put Bar_Ean13Hr(“0051111428177”) To 363,

711 Text 5

Remarques

Si les données ne répondent pas aux exigences, cela ne fonctionnera pas.

Remarques avancées

Le code à barres EAN13 est un codage de 13 chiffres, chaque chiffre étant représenté par un symbole (barre(s) et espace(s)) d’un jeu de nombres donné.

L’EAN13 comprend 3 jeux de nombres (A, B et C) correspondant aux paramètres first1, first2 et first3. De plus, il y a 3 motifs ajoutés au symbole final : caractère de début (start), caractère de contrôle au milieu (middle) et caractère de fin (end). Les 6 premiers chiffres sont codés dans les jeux de nombres A ou B alors que les 6 derniers chiffres sont codés dans le jeu de nombres C.

Le 13è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 :

  • DATA : chaîne à coder.
  • offset, EndCode1, EndCode2 : voir le paragraphe “Remarques avancées”.

Polices requises

BAR_CODE128 : police B128_46.sfp

police B128_66.sfp police B1282rp.sfp police B1286rp.sfp police B12811rp.sfp police B12816rp.sfp police BA128RXP50.sfp police BA128RXP75.sfp police BA12RXP_25.sfp

police BA128RZP.sfp

Exemple d’utilisation

Dans le fichier sjp :

/Char 3 B128_46.sfp

Dans le fichier sp :

Put Bar_CODE128(“3960117205”) To 363, 303

Text 3

Remarques

Si les données ne répondent pas aux exigences, cela ne fonctionnera pas

Remarques avancées

Le code 128 est un codage de la table ASCII. Il y a 3 motifs ajoutés au symbole final :

  • Le caractère de début (start) est modulé par un paramètre de décalage (offset) dont la valeur par défaut dans StarPage est 32. Cependant, cette valeur est paramétrable car elle peut varier selon les polices utilisées.
  • Le caractère de contrôle (C) généré par StarPage
  • Le caractère de fin (EndCode1)ainsi qu’un second caractère si nécessaire.

Remarques avancées

Le code 128 comprend 3 jeux de caractères et la sélection d’un de ceux-ci dépend du caractère de début. De plus, des caractères auxiliaires permettent, en cours de symbole, de passer d’un jeu à un autre. Notamment pour les données purement numériques, le jeu C permet d’utiliser le code 128 en double densité. Chaque caractère est composé de 3 barres et 3 espaces (4 et 3 pour le caractère de début/Fin). Les barres

représentent toujours un nombre pair de modules et les espaces un nombre impair.

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 :

  • Le caractère de début (start) est modulé par un paramètre de décalage (offset) dont la valeur par défaut dans StarPage est 32. Cependant, cette valeur est paramétrable car elle peut varier selon les polices utilisées.
  • Le caractère de contrôle (C) généré par StarPage
  • Le caractère de fin (EndCode1)ainsi qu’un second caractère si nécessaire.

Remarques avancées

Le code 128 comprend 3 jeux de caractères et la sélection d’un de ceux-ci dépend du caractère de début. De plus, des caractères auxiliaires permettent, en cours de symbole, de passer d’un jeu à un autre. Notamment pour les données purement numériques, le jeu C permet d’utiliser le code 128 en double densité. Chaque caractère est composé de 3 barres et 3 espaces (4 et 3 pour le caractère de début/Fin). Les barres

représentent toujours un nombre pair de modules et les espaces un nombre impair.

Set Extern_Func(“Code128;A;100,30;0;2;” + Data, “sjgraph.dll”, “sjg_barcode”) to graphname

“Code128; A; 100,25; 0; 2; Data” or “Code128; A; 100,25; 0; 2;” + VarData

1 2 3 4 5

  1. 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
  2. Width / Height definition 3- Rotation 0, 90, 180, 270
  3. Output type

1-> PCL //utilisation classique pour impression ou PDF 2-> TIF //image pour conversion DOC

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

  • DATA : chaîne à coder.
  • offset, EndCode1, EndCode2 : voir le Code 128

Polices requises

BAR_Ean128 : police B12811rp.sfp

police B12815rp.sfp police B12816rp.sfp police B12824rp.sfp police BA128rxp.sfp police BA128rzp.sfp

Exemple d’utilisation

Dans le fichier sjp :

/Char 3 B12811rp.sfp

Dans le fichier sp :

Put Bar_Ean128(“3960117205”) To 363, 303

Text 3

Remarques

Si les données ne répondent pas aux exigences, cela ne fonctionnera pas

Remarques avancées

Il a les mêmes propriétés que le Code 128.

De plus, l’Ean 128 comprend un caractère fonction (F1) permettant de reconnaître les applications standardisées EAN d’éventuelles utilisations particulières du code 128. L’identifiant de données (AI) définit la nature et parfois la longueur et structure des données qui suivent. Les AI sont utilisés pour

coder l’identification des produits. Ces paramètres sont automatiquement générés par StarPage.

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

  • DATA : chaîne à coder.
  • offset, EndCode1, EndCode2 : voir le Chapitre “Remarques avancées”

Polices requises

BAR_2of5p : police 25int_16.sfp

police 25int_18.sfp police 25int_20.sfp police 25int_22.sfp police 25intX18.sfp police B2510rrp.sfp police B2530rrp.sfp

Exemple d’utilisation

Dans le fichier sjp :

/Char 3 25int_16.sfp

Dans le fichier sp :

Put Bar_2of5p(“39601172056169756325”,40,’#’,

‘$’) To 363, 303 Text 3

Remarques

Si les données ne répondent pas aux exigences, cela ne fonctionnera pas

Remarques avancées

Le codage de chaque caractère comprend 2 modules larges sur 5 d’ou le nom Code 2 parmi 5.

  • Le caractère de début (start) peut être un nombre ou un caractère. Sa valeur par défaut est “(” mais, peut être différente pour certaines polices d’ou son caractère paramétrable.
  • Le caractère de fin (end) peut être un nombre ou un caractère. Sa valeur par défaut est “)” mais, peut être différente pour certaines polices d’ou son caractère paramétrable.
  • Les données peuvent être modulés par un paramètre de décalage (weight) dont la valeur par défaut dans

StarPage est 129. Cette valeur est paramétrable car elle peut varier selon les polices.

PDF417

Nom

PDF417

Type de données codées

les tables ASCII et ISO

Propriétés

Bidimensionnel, encode plus de1100 bytes, 1800 caractères ASCII ou 2700 caractères numériques

Exemple StarPage

Se reporter aux annexes

Instructions StarPage

Cf § Les instructions et commandes de contrôle / Bar_PDF147

Polices requises

police pdfw3.417

Exemple d’utilisation

Dans le fichier sjp :

/Char 6 pdfw3.417

Dans le fichier sp :

Bar_PDF417 (“APPIC”) To 472, 693 Text 6

UnitHeight 24 UnitWidth 3

Remarques

Si les données ne répondent pas aux exigences, cela ne fonctionnera pas

Remarques avancées

PDF signifie 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

Cf Extern_Func_Datamatrix

Exemple d’utilisation

Windows :

Set Extern_Func(“dmx;0;0;0;TRUE;” + data, “sjgraph.dll”, “sjg_barcode”) to var

Unix/Linux :

Set Extern_Func(“dmx;0;0;0;TRUE;” + data, “/usr/local/share/tbarcode11”, “sjg_barcode”) to var

Remarques

Si les données ne répondent pas aux exigences, cela ne fonctionnera pas

Remarques avancées

Le code à barres bidimensionnel, DataMatrix, est constitué d’un ensemble de lignes et de colonnes contenant des modules et est délimité par un finder pattern, bordure de reconnaissance de un module de large sur les quatre côtés. Les côtés gauche et bas sont des lignes comprenant des modules de couleur noire tandis que les côtés haut et droit sont constitués de modules alternativement noir et blanc. Le symbole peut être de forme carrée ou rectangulaire selon la taille, représentée par le nombre de modules par ligne et par colonne, choisie.

Le symbole est constitué d’une partie représentant les données et d’une partie représentant des codes de correction d’erreur permettant de reconstituer les données même si une partie du symbole est abimé.

Il y a deux types de symboles DataMatrix, ECC 000-

140 et ECC 200 mais, seul ECC 200 est géré par StarPage.

Le module est un carré dont le côté peut mesurer de 10 à 30 mils (1 mils = 1 millième de pouce), soit entre

0.254 et 0.762 mm, ce qui correspond, pour une imprimante 300 dpi, entre 3 et 9 points. Le fichier de police associé contiendra des modules variant de 3 à 12 points.

MaxiCode

Nom

MaxiCode

Type de données codées

les tables ASCII et ISO

Propriétés

bidimensionnelle inventée par UPS pour ses colis. Il est désormais dans le domaine public et permet la représentation de 93 caractères alpha-numériques. Sa taille est fixe et fait précisément 1 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

  1. /// 0: Compute size of Aztec symbol automatically
  2. 15×15, /// 1: Fixed square symbol-size 15 x 15
  3. 19×19, /// 2: Fixed square symbol-size 19 x 19
  4. 23×23, /// 3: Fixed square symbol-size 23 x 23
  5. 27×27, /// 4: Fixed square symbol-size 27 x 27
  6. 31×31, /// 5: Fixed square symbol-size 31 x 31 (first full-range symbol)
  7. 37×37, /// 6: Fixed square symbol-size 37 x 37
  8. 41×41, /// 7: Fixed square symbol-size 41 x 41
  9. 45×45, /// 8: Fixed square symbol-size 45 x 45
  10. 49×49, /// 9: Fixed square symbol-size 49 x 49
  11. 53×53, /// 10: Fixed square symbol-size 53 x 53
  12. 57×57, /// 11: Fixed square symbol-size 57 x 57
  13. 61×61, /// 12: Fixed square symbol-size 61 x 61
  14. 67×67, /// 13: Fixed square symbol-size 67 x 67
  15. 71×71, /// 14: Fixed square symbol-size 71 x 71
  16. 75×75, /// 15: Fixed square symbol-size 75 x 75
  17. 79×79, /// 16: Fixed square symbol-size 79 x 79
  18. 83×83, /// 17: Fixed square symbol-size 83 x 83
  19. 87×87, /// 18: Fixed square symbol-size 87 x 87
  20. 91×91, /// 19: Fixed square symbol-size 91 x 91
  21. 95×95, /// 20: Fixed square symbol-size 95 x 95
  22. 101×101 /// 21: Fixed square symbol-size 101 x 101
  23. 105×105 /// 22: Fixed square symbol-size 105 x 105
  24. 109×109 /// 23: Fixed square symbol-size 109 x 109
  25. 113×113 /// 24: Fixed square symbol-size 113 x 113
  26. 117×117 /// 25: Fixed square symbol-size 117 x 117
  27. 121×121 /// 26: Fixed square symbol-size 121 x 121
  28. 125×125 /// 27: Fixed square symbol-size 125 x 125
  29. 131×131 /// 28: Fixed square symbol-size 131 x 131
  30. 135×135 /// 29: Fixed square symbol-size 135 x 135
  31. 139×139 /// 30: Fixed square symbol-size 139 x 139
  32. 143×143 /// 31: Fixed square symbol-size 143 x 143
  33. 147×147 /// 32: Fixed square symbol-size 147 x 147
  34. 151×151 /// 33: Fixed square symbol-size 151 x 151
  35. 19x19_Rd /// 34: Fixed square symbol-size 19 x 19, used for reader initialization
  36. 23x23_Rd /// 35: Fixed square symbol-size 23 x 23, used for reader initialization
  37. 27x27_Rd /// 36: Fixed square symbol-size 27 x 27, used for reader initialization
  38. 11×11 Aztect Rune /// 37: Fixed square symbol-size 11 x 11, Aztec Rune

FORMAT

  1. “Default” /// 0: Default mode : The standard format of the AZTEC Code.
  2. “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.
  3. “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.

Les commandes d’environnement ne peuvent être conditionnées
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.

Lors de la génération de fichiers PDF, la gestion du mode recto-verso n’est pas

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”,””)

L’emploi du mot-clef Today n’est pas conseillé dans le cas où le projet est destiné à être archivé ; en effet, à la date de la consultation de l’archive, l’exécution du projet ne donnera pas le même résultat qu’à la date d’archivage, ce qui est contraire à la propriété du mécanisme d’archivage.

Dans le cas ou la valeur numérique d’une année est exprimée sur 2 positions (YY), une valeur <50 sera affectée au XXIème alors qu’une valeur 50 sera affectée au XX ème siècle.

☼ 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

Toutes les formats peuvent être combinés.

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

Les séparateurs possibles sont : le slash (/), le tiret (-), les deux points (:), l’espace et le point (.).

Trois langues sont supportées par le fonction :
  • 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

Dans le cas ou la valeur numérique d’une année est exprimée sur 2 positions (YY), une valeur <50 sera affectée au XXIème alors qu’une valeur 50 sera affectée au XX ème siècle.

☼ Exemple : 35 🡲 2035

70 🡲 1970

Extern_Func

Cette commande permet d’appeler une fonction externe à partir d’un fichier .dll ou

.so.

Syntaxe

Extern_Func (expr [;expr]*, library_name,

function_name)

Paramètres

Expr représente la chaîne source ou paramètre entrant [;expr]* représente la concaténation d’une série d’expressions

library_name représente le nom du fichier .dll (Windows) ou .so (Unix)

function_name représente le nom de la fonction externe

Commentaires

  • Il est déconseillé d’archiver, à l’aide de StarSafe, des projets StarPage utilisant des données arabes. Le traitement des données arabes reposant sur un module externe, la consultation d’une telle archive serait incorrecte si le module externe n’est pas présent, et cela risquerait d’affecter l’intégrité de l’archive. Si, cependant, tel est le cas, aucune garantie ne sera apportée à la solution complète.
  • Lors du développement de la librairie, donner le nom exact de la fonction développée dans la dll. Les paramètres de cette fonction sont deux chaînes de caractères.

Exemple de prototype en C :

declspec(dllexport) int stdcall MyFunction(unsigned char *szInParam, unsigned char *szResult)

la fonction peut écrire jusqu’à 64 Kilo octets dans szResult. Un code de retour de zéro indique le bon déroulement de la fonction.

Exemple

Extern_Func (L1:C1,52, “arabic.dll”, “convertISO”)

L’exemple ci-dessus est une conversion de données arabes : les données arabes (de droite à gauche) sont converties par le biais d’une fonction externe, en une chaîne (de gauche à droite) associée avec une police arabe.

La librairie “arabic.dll” réalisée par APPIC peut appeler deux fonctions :

  • convertISO traite les données arabes provenant d’un système UNIX dans un format ISO8859-6
  • convertMS traite les données arabes provenant d’un système Windows dans un format Microsoft CP1256.

Les polices de taille fixe à associer sont les fichiers suivants (taille 9, 12, 16, 24) : nk09rea.sfp, nk12rea.sfp, nk16rea.sfp, nk24rea.sfp.

Il est possible de spécifier le nom de la librairie sans son extension. Celle-ci sera automatiquement rajoutée par StarPage en fonction de la plate-forme d’exécution (.dll pour Windows, .so pour Unix).

Le développement de modules externes est sous la responsabilité du client et aucun support ne sera apporté sur les projets intégrant l’utilisation de modules externes.
Extern_Func_Datamatrix

Cette commande permet d’appeler une fonction externe permettant la génération d’une image bitmap d’un code à barre de type Datamatrix.

Pour les paramètres techniques du code à barre, voir la documentation TBarCodeX11_Manual_EN.pdf

Syntaxe

Extern_Func(“DMX;expr2;expr3;expr4;expr5;expr6″,” expr7″, “sjg_barcode”)

Paramètres

DMX type de code à barre à générer

Expr2 taille exprimé en 10e de mm (options Datamatrix) Expr3 taille (lignes/colonnes) du code (options Datamatrix) Expr4 largeur du code (en millième de mm) (options Datamatrix)

Expr5 présence de séquence(s) Escape ou non

Expr6 chaine à encoder

Expr7 chemin d’accès au répertoire où se trouve installé la librairie TBarcode

sjg_barcode représente le nom de la fonction à exécuter

Commentaires

  • La librairie TBarcode génère une image bitmap du code à barre et retourne son nom complet.
  • Peut coder jusqu’à 2335 caractères alphanumériques ou 3116 caractères numériques sur environ 1cm².
  • La fonction sjg_barcode est à associer avec la fonction sjg_release qui permet, le programme terminé, de supprimer les images bitmap créées.

Exemple

Set Extern_Func(“DMX;0;0;0;TRUE;chaine a encoder”, “sjgraph.dll ou unix TBarCode librairie”, “sjg_barcode”) to bc_graphname Put “/Picture ” + bc_graphname + ” x=10 y=640″ To 0, 0 Text 1

Set Extern_Func(“DMX;bc_graphname “,”sjgraph.dll ou unix TBarCode librairie”,”sjg_release”) to ret

L’exemple ci-dessus génère l’image d’un code à barre contenant “chaine à encoder”. Le nom de l’image est récupéré dans la variable bc_graphname.

La commande Put /Picture… va intégrer l’image du code à barre dans le PCL de StarPage.

La fonction “Extern_Func… sjg_release ” indique à StarPage qu’il faudra supprimer cette image à la fin du traitement.

Options Datamatrix

Expr2 : La 1ère valeur est la taille du code exprimée en 10ème de millimètre Ex: 100,100 (1cm x 1cm)

220,220 (2,2cm x 2,2cm)

Expr3 : La 2ème valeur sera la taille en lignes/colonnes du code

// 0 = “Default”,

// 1 = Fixed square symbol-size 10 x 10 //< =16: Fixed square

symbol-size 64 x 64

//< =2: Fixed square symbol-size 12 x 12/ //< =17: Fixed square symbol-size 72 x 72

//< =3: Fixed square symbol-size 14 x 14 //< =18: Fixed square

symbol-size 80 x 80

//< =4: Fixed square symbol-size 16 x 16 //< =19: Fixed square

symbol-size 88 x 88

//< =5: Fixed square symbol-size 18 x 18 //< =20: Fixed square

symbol-size 96 x 96

//< =6: Fixed square symbol-size 20 x 20 //< =21: Fixed square

symbol-size 104 x 104

//< =7: Fixed square symbol-size 22 x 22 //< =22: Fixed square

symbol-size 120 x 120

//< =8: Fixed square symbol-size 24 x 24 //< =23: Fixed square

symbol-size 132 x 132

//< =9: Fixed square symbol-size 26 x 26 //< =24: Fixed square

symbol-size 144 x 144

//< =10: Fixed square symbol-size 32 x 32 //< =25: Fixed rectangular

symbol-size 8 x 18

//< =11: Fixed square symbol-size 36 x 36 //< =26: Fixed rectangular

symbol-size 8 x 32

//< =12: Fixed square symbol-size 40 x 40 //< =27: Fixed rectangular

symbol-size 12 x 26

//< =13: Fixed square symbol-size 44 x 44 //< =28: Fixed rectangular

symbol-size 12 x 36

// =14: Fixed square symbol-size 48 x 48 //< =29: Fixed rectangular

symbol-size 16 x 36

//< =15: Fixed square symbol-size 52 x 52 //< =30: Fixed rectangular

symbol-size 16 x 48

Expr4 : La 3ème valeur sera la largeur de l’image

// 0 = “Default”,

// 1 = “370”

// 2 = “400”

// 3 = “430”

// 4 = “450”

Expr5 : TRUE ou FALSE c’est pour indiquer si dans les données il y a des séquences ESC

Extern_Func_Maxicode

Cette commande permet d’appeler une fonction externe permettant la génération d’une image bitmap d’un code à barre de type MaxiCode.

Pour les paramètres techniques du code à barre, voir la documentation TBarCodeX10_Manual_EN.pdf

Syntaxe

Extern_Func(“UPS;expr2;expr3;expr4;expr5″,”expr6”

, “sjg_barcode”)

Paramètres

UPS type de code à barre à générer

Expr2 mode du code à barres (cf page 80) Expr3 format du code à barres (cf page 85) Expr4 présence de séquence(s) Escape ou non Expr5 chaine à encoder

Expr6 chemin d’accès au répertoire où se trouve installé la librairie TBarcode

sjg_barcode représente le nom de la fonction à exécuter

Commentaires

  • La librairie TBarcode génère une image bitmap du code à barre et retourne son nom complet.
  • Le nombre maximun de caractères pouvant être encodés et de 93 caractères alpha-numériques.
  • La fonction sjg_barcode est à associer avec la fonction sjg_release qui permet, le programme terminé, de supprimer les images bitmap créées.

Exemple

Set Extern_Func(“UPS;4;S;TRUE;chaine a encoder”, “sjgraph.dll”, “sjg_barcode”) to bc_graphname

Put “/Picture ” + bc_graphname + ” x=10 y=640″ To 0, 0 Text 1

Set Extern_Func(“UPS;bc_graphname “,”sjgraph.dll or unix TBarCode library”,”sjg_release”) to ret

L’exemple ci-dessus génère l’image d’un code à barre contenant “chaine a encoder”. Le nom de l’image est récupéré dans la variable bc_graphname.

La commande Put /Picture… va intégrer l’image du code à barre dans le PCL de StarPage.

La fonction “Extern_Func… sjg_release ” indique à StarPage qu’il faudra supprimer cette image à la fin du traitement.

Extern_Func_QR-Code

Cette commande permet d’appeler une fonction externe permettant la génération d’une image bitmap d’un code à barre de type QR-Code.

Pour les paramètres techniques du code à barres, voir la documentation TBarCodeX11_Manual_EN.pdf

Syntaxe

Extern_Func(“QR-CODE;

expr2;expr3;expr4;expr5;expr6″,”sjg_barcode”)

Paramètres

QR-CODE type de code à barre à générer

Expr2 dimension X,Y exprimée en dizième de millimètres

Expr3 format du code à barres (0 par défaut) Expr4 présence de séquence(s) Escape ou non Expr5 chaine à encoder

Expr6 chemin d’accès au répertoire où se trouve installé la librairie TBarcode

sjg_barcode nom de la fonction à exécuter

Commentaires

  • La librairie TBarcode génère une image bitmap du code à barre et retourne son nom complet.
  • La fonction sjg_barcode est à associer avec la fonction sjg_release qui permet, le programme terminé, de supprimer les images bitmap créées.

Exemple

Set Extern_Func(“QR- CODE;360,360;0;TRUE;chaine a

encoder”,”sjgraph.dll”, “sjg_barcode”) to graphname

Put “/Picture ” + graphname + ” x=200 y=300″ To 0, 0 Text 1

Set Extern_Func(“QR-CODE;bc_graphname “,”sjgraph.dll or unix TBarCode library”,”sjg_release”) to ret

L’exemple ci-dessus génère l’image d’un code à barre contenant “chaine a encoder”. Le nom de l’image est récupéré dans la variable graphname.

La commande Put /Picture… va intégrer l’image du code à barre dans le PCL de StarPage.

La fonction “Extern_Func… sjg_release ” indique à StarPage qu’il faudra supprimer cette image à la fin du traitement.

Extern_Func_Aztec

Cette commande permet d’appeler une fonction externe permettant la génération d’une image bitmap d’un code à barre de type Aztec.

Pour les paramètres techniques du code à barres, voir la documentation TBarCodeX11_Manual_EN.pdf

Syntaxe

Extern_Func(“AZTEC; expr2;expr3;expr4

“,expr5,”sjg_barcode”)

Paramètres

AZTEC type de code à barre à générer Expr2 Taille du code (cf table tailles) Expr3 format du code (cf table formats)

Expr4 présence de séquence(s) Escape ou non

Expr5 chemin d’accès au répertoire où se trouve installé la librairie TBarcode

sjg_barcode nom de la fonction à exécuter

Commentaires

  • La librairie SJGraph génère une image bitmap du code à barre et retourne son nom complet.
  • La fonction sjg_barcode est à associer avec la fonction sjg_release qui permet, le programme terminé, de supprimer les images bitmap créées.

Exemple

Set Extern_Func(“AZTEC;3;1;TRUE;” + AZTECCode, “sjgraph”, “sjg_barcode”) to graphname

Put “/Picture ” + graphname + ” x=200 y=300″ To 0, 0 Text 1

Set Extern_Func(“AZTEC;bc_graphname “,”sjgraph.dll or unix TBarCode library”,”sjg_release”) to ret

L’exemple ci-dessus génère l’image d’un code à barre contenant “chaine à encoder”. Le nom de l’image est récupéré dans la variable graphname.

La commande Put /Picture… va intégrer l’image du code à barre dans le PCL de StarPage.

La fonction “Extern_Func… sjg_release ” indique à StarPage qu’il faudra supprimer cette image à la fin du traitement.

Length
CHR

Cette fonction permet de retourner le nombre de caractères d’une variable.

Syntaxe

length (nom variable)

Exemple

…………

Value numero_client1 Is Var Value numero_client2 Is Var

Set “34” to numero_client1 Set “152” to numero_client2

…………

Appel

Renvoi

length(numero_client1)

2

length(numero_client2)

3

Cette fonction permet de récupérer un caractère d’après son code ASCII.

Syntaxe

CHR(expr)

Paramètres

expr représente un élément du code ASCII (voir table ASCII)

Commentaires

  • Cette fonction permet de récupérer et donc de gérer des caractères non imprimables (ex : saut de page).

Exemple

Appel

Renvoi

CHR(65)

A

CHR(12)

Saut de page

CHR (13)

Retour à la ligne

FindStrPos

Cette fonction permet de retrouver, à partir d’une position donnée dans la chaîne source, la première occurrence d’une chaîne de caractères.

Syntaxe

FindStrPos(ExpStr_tofind,ExpStr[,Pos])

Paramètres

ExpStr_tofind est la chaîne de caractères recherchée.

ExpStr est la chaîne de caractères source.

Pos est une valeur numérique définissant le début de la

recherche.

Commentaires

  • Le résultat est une valeur numérique définissant le début de la chaîne de caractères recherchée.
  • La recherche commence à partir de la position qui suit le paramètre Pos. Si Pos=5, la recherche commence au 6ème caractère

Exemple

# recherche la premiere occurrence

Set FindStrPos(“TOTO”,”TATATOTOTITITITOTO”)to Pos

While (Pos %<>0)

Put “Trouvé en position : ” + Pos to…

# recherche l’occurence suivante

Set FindStrPos(“TOTO”,”TATATOTOTITITITITOTO”,Pos)

to Pos EndWhile

GetSubStr

Cette fonction permet de récupérer, à partir d’une chaîne source, une chaîne de caractères dont la longueur et la position dans la source sont définies.

Syntaxe

GetSubStr(Pos,Len,ExpStr)

Paramètres

Pos est une valeur numérique définissant la début de la chaîne de caractères recherchée.

Len est une valeur numérique définissant la taille de la chaîne de caractères recherchée.

ExpStr est la chaîne de caractères source.

Commentaires

  • Si la valeur de Pos est trop élevée ou la valeur de Len négative ou nulle, la chaîne de caractères retournée sera vide.
  • Si la valeur de Len est trop élevée, une chaîne de caractères

de taille inférieure à Len peut être renvoyée.

Exemples

GetSubStr(3,3,”CHAINE” )  “AIN” GetSubStr(5,2,”CHAINE”)  “NE” GetSubStr(5,8,”CHAINE”)  “NE” GetSubStr(7,8,”CHAINE”)  “”

DeleteSubStr

Cette fonction permet de récupérer, après suppression d’une partie de la chaîne source, une chaîne de caractères résultante.

Syntaxe

DeleteSubStr(Pos,Len,ExpStr)

Paramètres

Pos est une valeur numérique définissant le début de la chaîne de caractères à supprimer.

Len est une valeur numérique définissant la taille de la chaîne de caractères à supprimer.

ExpStr est la chaîne de caractères source.

Commentaires

  • Si la valeur de Pos est trop élevée ou la valeur de Len négative ou nulle, la chaîne de caractères retournée est la chaîne source.
  • Si la valeur de Len est trop élevée, une chaîne de caractères

de taille inférieure à Len est supprimée de la source.

Exemples

DeleteSubStr(3,3,”CHAINE” )  “CHE” DeleteSubStr(5,2,”CHAINE”)  “CHAI” DeleteSubStr(5,8,”CHAINE”)  “CHAI” DeleteSubStr(7,8,”CHAINE”)  “CHAINE”

ReplaceStr

Cette fonction permet de remplacer, dans une chaîne de caractères source, une partie de la chaîne de caractères par une autre.

Syntaxe

ReplaceStr(ExpStr_tofind,ExpStr_toreplace,ExpStr[,

Pos[,toPos]])

Paramètres

ExpStr_tofind est la chaîne de caractères à supprimer. ExpStr_toreplace est la chaîne de caractères remplaçante. ExpStr est la chaîne de caractères source.

Pos est une valeur numérique définissant le début de la recherche.

toPos est une valeur numérique définissant la fin de la

recherche.

Commentaires

  • La chaîne de caractères remplaçante peut être constituée d’un nombre de caractères différent de la chaîne supprimée.

Exemples

ReplaceStr(“TOTO”,”PADDY”,”TATATOTOTITITITOTO”)

 “TATAPADDYTITITIPADDY”

ReplaceStr(“TOTO”,”PADDY”,”TATATOTOTITITITITOTO”,9)

 “TATATOTOTITITIPADDY”

ReplaceStr(“TOTO”,”PADDY” “TATATOTOTITITITITOTOTATATITITATATITITOTO”,9,36)  “TATATOTOTITITITIPADDYTATATITITATATITITOTO”

ReverseStr

Cette fonction permet d’inverser une chaîne de caractères.

Syntaxe

ReverseStr(ExpStr)

Paramètres

ExpStr est la chaîne de caractères.

Exemples

ReverseStr (“PADDY”)  “YDDAP”

GetFieldsCount

Cette fonction permet de récupérer le nombre de champs séparés par un caractère de délimitation défini.

Syntaxe

GetFieldsCount(Delimit,Quote,ExpStr)

Paramètres

Delimit représente le caractère de délimitation.

Quote représente les quotes simples ou doubles gérées par la fonction en tant qu’inhibiteurs.

ExpStr est la chaîne de caractères.

Commentaires

  • S’il n’y a pas de gestion de quote, le paramètre Quote est vide et il n’y a pas d’inhibiteur.
  • Le paramètre \ placé devant un caractère est utilisé pour interpréter ce dernier en tant qu’inhibiteur et non en tant que début de chaine de caractères.

Exemples

GetFieldsCount(“;”,”\””,”AB;CD;EF”)  3

GetFieldsCount(“;”,”\””,”AB;CD;\”EF;GH\””)  3

GetFieldsCount(“;”,””,”AB;CD;\”EF;GH\””)  4

GetFieldsCount (“;”,”\””,”AB;CD; \”EF\”;\”GH\”” )  4

GetFieldsCount (“;”,”\””,” ; ; ; ” )  4

GetField

Cette fonction permet de récupérer un champ parmi les champs séparés par un caractère de délimitation défini.

Syntaxe

GetField(Delimit,Quote,ExpStr,FieldNumber)

Paramètres

Delimit représente le caractère de délimitation des champs. Quote représente les quotes simples ou doubles gérés par la fonction en tant qu’inhibiteurs.

ExpStr est la chaîne de caractères.

FieldNumber représente le numéro de champ recherché.

Commentaires

  • S’il n’y a pas de gestion de quote, le paramètre Quote est vide et il n’y a pas d’inhibiteur.
  • Le paramètre \ placé devant le caractère quote est utilisé pour interpréter ce dernier en tant qu’inhibiteur et non en tant que début de chaine de caractères.

Exemples

GetField(“;”,”\””,”AB;CD;EF”,2 )  “CD”

GetField(“;”,”\””,”AB;CD; \”EF;GH\””,3)  “EF;GH”

GetField(“;”,””,”AB;CD; \”EF;GH\””,3)  “”EF”

GetField(“;”,”\””,”AB;CD;\”EF\”;\”GH\””, 3)  “EF”

GetField(“;”,”\””,”AB;CD;EF; ” , 4)  “”

XPath (xPathExpStr)

Réservée au mode XML, cette commande permet de retrouver la liste des éléments satisfaisant à la requête définie par l’expression xPathExpStr.

Syntaxe

XPath (xPathExpStr)

Paramètres

xPathExpStr représente le “chemin” de la requête

Commentaires

Si le résultat est constitué de plusieurs éléments, les réponses sont concaténées

Exemple

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

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

  • Cette commande de même nature que les commandes copy, move et erase porte sur l’ensemble de la matrice. Elle permet de demander l’impression du reste de la matrice, en utilisant la police et la densité définie par défaut grâce à la commande text.
  • L’espace interligne est décidé à partir des valeurs indiquées par les commandes Linespacing, Verticalspacing définies pour la page de reformatage en cours de traitement, ou par les valeurs définies par défaut. Si aucunes de ces valeurs n’est définie, l’impression se fera en tenant compte des valeurs Maxlines et Top définies dans la commande

/PORTRAIT ou /LANDSCAPE du fond de page indiqué dans la commande form, ainsi, bien entendu que de la taille du papier.

  • Sont considérées comme faisant partie du reste de la matrice les informations qui :
    • n’ont été effacées par aucune commande erase
    • n’ont été déplacées par aucune commande move.
  • Cette commande doit être située à la fin du fichier de commandes ou, si plusieurs page de reformatage sont définies, à la fin de chacune des pages concernées par cette commande.
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

  • dens est la densité à affecter à la police par défaut

Commentaires

  • Les informations reprises de la matrice d’entrée seront imprimées par défaut, en utilisant la police de caractères définie à l’aide de cette commande.
  • Si une densité est indiquée, la police sera modifiée pour satisfaire cette valeur de densité. Dans le cas contraire, la densité par défaut de la police sera utilisée.
  • L’utilisation de cette commande est indispensable pour pouvoir utiliser la commande Include rest.

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

  • 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.
  • Un même numéro d’Overlay peut être utilisé plusieurs fois si vous souhaitez voir imprimer plusieurs pages identiques avec cet Overlay.

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

CODES RETOUR

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

  1. SCHÉMA DE FONCTIONNEMENT DU LOGICIEL STARPAGE

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

II- CODES À BARRES

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

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

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

Seule la présence des clefs sert d’option. Leurs valeurs n’ont pas d’importance et servent

de commentaires.

Certaines options sont associées à des valeurs, par exemple -DIA pour définir l’auteur du document. Si ces valeurs sont composées d’espaces ou de caractères non alphabétiques, mettre la valeur entre quotes.

Lors de la génération de fichiers PDF, la gestion du mode recto-verso n’est pas prise en compte. L’impression PDF dépend uniquement d’Adobe® Acrobat® et du pilote d’imprimante Windows. Le mode recto-verso peut donc être uniquement sélectionné à l’impression, lors de la configuration de l’imprimante.

IV- OPTIONS POUR LIGNES DE COMMANDES SOUS WINDOWS

Cf les manuels spécifiques aux différentes plateformes (Windows, Unix, VMS et MPE) pour les options de lignes de commande.

V- COMMANDES STARJET

L’ensemble des commandes StarJet doit commencer par un caractère appelé préfixe situé en colonne 1.

Ce préfixe est, par défaut, la barre de fraction “/“.

Il est possible (voir commande /PREFIX) de modifier ce caractère de préfixe afin de l’adapter à vos besoins spécifiques.

Toute ligne figurant dans un fichier de commandes et ne commençant pas par le préfixe actif est considérée comme une ligne de données.

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é

/ACTIVATE-OVERLAY

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

Il est indispensable d’inclure dans le fichier d’environnement contenant cette commande d’activation, la commande /CHAR permettant de charger la police de caractères devant être utilisée pour l’impression des données. Celle-ci doit être dans le même sens que la forme (Landscape ou Portrait).

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)

Le nombre maximal de polices pouvant être défini dans un projet est de

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.

Les noms de polices doivent correspondre à l’orientation de la page, c’est à dire se terminer par P si vous utilisez /PORTRAIT et vice-versa.

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.

Nous vous conseillons vivement de ne sélectionner pour l’impression des données que des polices à espacement fixe, afin de préserver l’alignement des colonnes de vos états.

Les imprimantes PCL 5 – LaserJet series III, IIID, IIIP et IIISi, IV, contiennent des polices internes de taille variable – Scalable Fonts. Ces polices

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.

Toutes ces copies seront strictement identiques.

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.

Cette commande reste sans effet sur les imprimantes ne disposant pas de la faculté d’impression Recto-Verso

Affichage d’un message

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.

Cette commande n’a d’intérêt que si la version que vous utilisez n’est pas pré-configurée dans cette langue.

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.

/FRAME <points>

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

Cette commande doit impérativement suivre une commande /PORTRAIT

ou /LANDSCAPE.

/FRANCAIS

Paramètres

Aucun

Commentaires

Cette commande permet d’obtenir les messages de StarJet en français.

Cette commande n’a d’intérêt que si la version que vous utilisez n’est pas pré-configurée dans cette langue.

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.

Nous vous recommandons d’imprimer une grille au format PORTRAIT et une autre au format LANDSCAPE sur des transparents. Ils vous seront d’une grande utilité pour l’élaboration de vos fonds de page en vous donnant immédiatement, par transparence, les coordonnées en (X,Y) des éléments constituant le fond de page.

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>

Paramètres

épaisseur Epaisseur du trait (en points)

x1 Origine en partant de la gauche de la page

y1 Origine en partant du haut de la page

x2 Fin de la ligne en partant de la gauche de la 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>

Commentaires

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>

Paramètre

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

Paramètres

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

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

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

/LANDSCAPE ne peut être utilisé en même temps que la commande

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

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

L’utilisation de pages logiques multiples n’est disponible qu’en Post traitement (voir paragraphe Post-Traitement dans le chapitre Intégration).

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

L’utilisation de multiples pages logiques par page physique fonctionne bien sur les LaserJet III disposant d’un méga-octets de mémoire supplémentaire

en “page protect mode”. Il est probable que certaines imprimantes de la gamme LaserJet ne supportent pas cette fonctionnalité.

Positionne une marge gauche.

Syntaxe

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

Paramètres

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

#

L’inverse de cette commande est la commande /NOLIST.

Passage du mode PCL à un autre mode et vice-versa.

Syntaxe

/MODE [PCL|HPGL]

Paramètres

PCL Mot clé permettant de passer en mode PCL

HPGL Mot clé permettant de passer en mode 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.

Les commandes HP-GL obéissent à une syntaxe qui leur est propre.

Reportez-vous à la documentation de votre imprimante pour plus d’informations.

Commande de préparation à l’émulation de liasse.

Syntaxe

/MULTIDATA

Paramètres

Aucun

Commentaires

Cette commande doit se situer au début de la description de chacun des Overlays utilisés pour émuler des liasses.

Cette commande permet à StarJet d’effectuer les préparations qui lui sont nécessaires au sein des Overlays concernés.

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.

Cette commande doit être utilisée en conjonction avec la commande

/MULTIPART

Commande de définition du Recto-Verso pour l’émulation de liasse.

Syntaxe

/MULTIDUPLEX <i j [k … ]>

Paramètres

i j Mode Duplex utilisé pour chaque 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 fonctionnalité n’est disponible qu’en Post-Traitement

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 … ]>

Paramètres

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

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 …]]

Paramètres

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.

Un même numéro d’Overlay peut être utilisé plusieurs fois si vous souhaitez voir imprimer plusieurs pages identiques avec cet Overlay.

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.

Cette commande doit être utilisée en conjonction avec la commande

/MULTIDATA.

Cette fonctionnalité n’est disponible qu’en mode “Post-traitement”.

Les données ne sont envoyées qu’une fois à l’imprimante et cela, quelque soit le nombre de pages imprimées.

Commande de définition du bac d’alimentation pour l’émulation de liasse.

Syntaxe

/MULTITRAY <i j [k … ]>

Paramètres

i j Numéro du bac utilisé pour chaque 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.

Cette fonctionnalité n’est disponible qu’en Post-Traitement Cette commande ne peut être exécutée que sur des imprimantes supportant

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

Paramètres

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

L’inverse de cette commande est la commande /LIST.

Pour sélectionner un bac de sortie du papier de l’imprimante.

Syntaxe

/OUTBIN <bac>

Paramètre

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

Paramètres

numéro numéro d’identification affecté à l’Overlay

0 indique la fin de définition d’un Overlay

PERM Mot clé demandant la sauvegarde de cet Overlay dans la mémoire de l’imprimante

TEMP Mot clé ne demandant pas la sauvegarde de cet Overlay dans la mémoire de l’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.

Un Overlay, même permanent ne peut survivre ni à un Hardware Reset (pression de la touche “Reset” de l’imprimante), ni à une coupure de l’alimentation secteur de l’imprimante.

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.

Cette commande est celle qui permet à un fond de page d’être répété sur chacune des pages d’un état.

Demande à l’imprimante d’effectuer un saut de page logique (Abréviation : /P).

Syntaxe

/PAGE

Paramètres

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>

Paramètres

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

Paramètres

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>

Paramètres

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.

Ci-dessous, les caractéristiques des images tiff gérés par Starpage :
  • 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>]

Paramètres

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

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

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

/PORTRAIT ne peut être utilisé en même temps que la commande

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

L’utilisation de pages logiques multiples n’est disponible qu’en Post

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

L’utilisation de multiples pages logiques par page physique fonctionne bien sur LaserJet III disposant d’un méga-octets de mémoire supplémentaire en “page protect mode”. Il est probable que certaines imprimantes de la gamme

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.

La commande “//” est elle même sensible à la commande /PREFIX. Elle devient alors la commande “<s><s>”

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

Paramètres

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.

Cette commande, émise au milieu ou à la fin d’un fichier de commandes, nettoie toutes les instructions préalablement reçues par 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.

Cette fonctionnalité n’est disponible que pour les imprimantes supportant le niveau 5 de PCL, comme par exemple la LaserJet série III.

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

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 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 numéro de police doit correspondre à un numéro logique attribué au préalable par une commande /CHAR.

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 numéro de police doit correspondre à un numéro logique attribué au préalable par une commande /CHAR.

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 numéro de police doit correspondre à un numéro logique attribué au préalable par une commande /CHAR.

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.

Les commentaires générés par StarJet-Design (/*WD…) lui sont nécessaires pour la relecture des fichiers de commandes. Ne les altérer qu’en prenant les plus extrêmes précautions.

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.

Exemple

/CHAR 1 LP080RRP

~&a5L

/* Définition d’une marge gauche de 5 colonnes