Syntaxe d’expression
Ce chapitre couvre les aspects liés à la syntaxe suivants : jetons, grammaire, opérations prises en charge, noms intégrés utilisés dans les calculs et fonctions d’expression. Pour les détails, voir les sous-sections ci-dessous.
Jetons
L’expression que vous saisissez pour une propriété spécifique est traitée dans une séquence de jetons qui doivent être conformes à la structure décrite dans la sous-section. Les espaces blancs entre les jetons sont insignifiants et ignorés.
Identifiants
Les identifiants intégrés sont utilisés pour référencer les objets intégrés. Les identifiants intégrés commencent avec une lettre majuscule ou minuscule ou un trait de soulignement (par ex., Top fait référence au niveau supérieur d’une région). Les identifiants utilisateur sont joints en crochets [ ] et peuvent contenir tout caractère Unicode (par ex., [Sep1] peut fait référence au côté le plus à gauche de la colonne de table appelée Description).
Jetons à caractère unique
Les jetons à caractère unique font partie intégrante des langages de programmation et sont généralement combinés pour créer des expressions complexes. Les jetons à caractère unique incluent ceci : (, ), {, }, ,, :, ..
Littéraux de nombre
Les littéraux de nombre représentent des valeurs numériques. Les littéraux de nombre n’ont pas de signe (ceci est géré comme opérateur unitaire) et doivent avoir au moins un chiffre avant et après le point décimal.
Littéraux de string
Les littéraux de string représentent des séquences de caractères inclus dans des guillemets doubles. Les littéraux de string peuvent contenir tout caractère Unicode et caractères d’échappement-barres obliques inversées spéciaux (par ex., le \n caractère représente un saut de ligne).
Littéraux de couleur
Les littéraux de couleur représentent des valeurs de couleur. Les littéraux de couleur prennent la même forme que HTML et CSS et utilisent trois ou six chiffres (par ex., #FFF est un code couleur hexadécimal qui représente le blanc).
Opérateurs
Les opérateurs sont des symboles qui sont utilisés pour exécuter des opérations diverses, telles que comparer des valeurs, exécuter des calculs mathématiques, concaténer des strings, etc. Les opérateurs suivants sont pris en charge: +, -, *, /, &, |, =, !, <, >, ^, %.
Grammaire
Cette sous-section décrit les aspects suivants de la grammaire : les expressions binaires et unaires.
Expressions binaires
Une expression binaire est une expression qui contient deux opérandes et un opérateur qui spécifie une action (par ex., multiplication) à exécuter sur les opérandes.
Les opérateurs multiplicatifs (*, /), additifs (+, -) et logiques (&&, ||, !) sont des opérateurs associatifs gauche, ce qui signifie que les opérateurs de la même précédence de l’opérateur sont traités de gauche à droite (par ex., dans l’expression 5+2*4, la multiplication est calculée avant l’addition, car la multiplication est une précédence plus élevée qu’une addition). Les opérateurs associatifs gauche peuvent être en chaîne.
Les opérateurs d’égalité (==, !=, =), relationnels (<, >, ≤, ≥) et généraux (les opérateurs ne sont pas inclus dans d’autres classes) ne sont pas associatifs et, pour cette raison, mettre en chaîne de tels opérateurs sans parenthèses résulte en une erreur d’analyse.
Expressions unaires
Une expression unaire est une expression qui contient uniquement une opérande et un opérateur unaire qui agit sur cette seule opérande. Les expressions unaires prises en charge sont décrites ci-dessous.
•Une expression référence built-in est un identifiant, un identifiant suivi par une séquence de sélecteurs de membres, ou un identifiant suivi par un tuple, qui est un appel de fonction.
•Une expression référence de l’utilisateur est la même qu’une référence intégrée á l’exception qu’aucun appel de fonction n’est possible.
•Une expression opérateur de préfixe unaire est un opérateur qui agit sur une seule opérande et est placé avant l’opérande. Certains opérateurs de préfixe unaires sont +, -, !, ++, --.
•Une expression littéral de string : voir la description dans Littéraux de string dans la sous-section Jetons ci-dessus.
•Une expression nombre est un littéral de nombre avec un suffixe optionnel, qui peut être tout identifiant built-in. Ce type d’expression peut être utile, par exemple, pour des littéraux de distance.
•Une expression littéral de couleur : voir la description dans Littéraux de couleur dans la sous-section Jetons ci-dessus.
•Les expressions Tuple peuvent être de types suivants : (i) un tuple vide qui ne contient aucun élément et est représenté comme (); (ii) un tuple singleton qui contient un seul élément (par ex., (50,)); (iii) tous les autres tuples, qui contiennent au moins deux valeurs (par ex., 5pt, « Hello ») est un tuple avec une distance comme sa première valeur et un string comme sa seconde valeur).
•Une expression structure est semblable à une expression tuple, avec la différence que des membres tuple ont des indices qui les identifient, mais les membres de structure ont des noms à la place des indices. Contrairement à un tuple, une structure de membre unique est toujours une structure et a un nom. Toutefois, une structure vide est équivalente à un tuple vide. Exemple d’une structure : { X: 30pt, Y: -20pt } est une structure avec des membres X et Y, dont les deux sont des distances.
Opérations prises en charge
Cette sous-section décrit les opérations prises en charge.
Nombre
Les nombres peuvent être ajoutés, soustraits, annulés, multipliés, divisés et comparés. L’Extracteur PDF prend en charge les fonctions paires et impaires pour vérifier si un nombre est paire ou impaire. Le résultat sera indéfini si un nombre n’est pas un entier.
Booléen
Des opérations booléennes acceptent les comparaisons d’égalité (==, !=), conjonctions logiques (AND), et disjonctions (OR).
Emplacements
L’emplacement spécifie la position d’un bord sur la page. Les opérations de l’emplacement vous permettent de placer un bord sur la page. Généralement, vous faites ceci en utilisant, par exemple, un bord ou en ajoutant une distance au bord (par ex., gauche + 50pt). Les emplacements spécifiés dans la même direction cardinale peuvent être soustraits pour donner un emplacement de résultat (e.g., (Top + 500 pt) - (Top + 200pt) = Top+300pt).
Distances
La distance spécifie la distance entre les deux emplacements sur la page. Les fonctions de la distance sont mesurées en pt, in, cm, mm et pc, avec la même signification que dans CSS. Vous pouvez ajouter et soustraire les distances de même que multiplier une distance par un nombre. Il est également possible de diviser les distances pour obtenir le ratio.
Opérations avec rectangles
L’Extracteur PDF prend en charge les fonctions suivantes qui vous permettent de manipuler les rectangles :
La fonction inflate change la dimension d’un rectangle. Si vous précisez des nombres négatifs, la fonction réduit la dimension d’un rectangle par la distance donnée. Si vous précisez des nombres positifs, la fonction élargit le rectangle. Cette fonction pourrait être utile si, par exemple, une page a un cadre que vous souhaitez exclure du traitement. Vous pouvez modifier la taille du rectangle manuellement, ou vous pouvez utiliser la fonction inflate (exemple ci.-dessous).
Syntaxeinflate(rectangle, distance horizontale, distance verticale) -> rectangle
ExemplePar exemple, l’expression inflate(PageRect, -1cm, -1cm) définie dans la propriété Région définit le rectangle 1 cm plus loin des bords horizontaux de la page et 1 cm plus loin des bords verticaux de la page (voir capture d’écran ci-dessous). Pour information sur PageRect, voir Noms intégrés ci-dessous.
|
La fonction offset déplace le rectangle par la distance horizontale et verticale spécifiée.
Syntaxeoffset(rectangle, distance horizontale, distance verticale) -> rectangle
|
La fonction clip prend deux rectangles comme ses deux arguments et renvoie un rectangle qui est la zone de chevauchement des deux rectangles d’entrée.
Syntaxeclip(rectangle, rectangle) -> rectangle
|
La fonction contains vérifie si les emplacements spécifiés sont à l’intérieur des limites du rectangle.
Syntaxecontains(rectangle, horizontal location, vertical location) -> booléen
|
Noms intégrés
L’Extracteur PDF prend en charge les noms intégrés qui peuvent être utilisés dans les calculs :
•Gauche : Le bord gauche de la page actuelle. Gauche est un alias de PageRect.Left.
•Top : Le bord supérieur de la page actuelle. Top est un alias de PageRect.Left.
•Droite : le bord droit de la page actuelle. Droite est un alias de PageRect.Left.
•Bas : le bord du bas (inférieur) de la page actuelle. Droite est un alias de PageRect.Left.
•PageRect: Un rectangle définissant les limites de la page actuelle. Le nom built-in PageRect est utile en combinaison avec les fonctions de traitement du rectangle telles inflate (voir Opérations avec Rectangles ci-dessus).
•PageNumber : le numéro de page de la page actuelle.