Sites


Scribus

JavaScripts dans les PDF Scribus – Champ texte PDF

Création d’un champ texte PDF

Créer plusieurs objets de formulaire PDF 

 

Avec clic de la souris  . Puis sélection à la souris  + déplacement sur la feuille dans le document pour créer l’objet champ texte PDF.

Champ texte PDF comme label

Il faut cocher avec un clic de la souris   dans la fenêtre de Propriétés du champ

 

Ajout d’un JavaScript de gestion d’un label avec la souris dans un champ texte PDF

Sélectionnez l’onglet action avec un clic de la souris . Puis après un clic  dans « type : », sélectionnez

 

Sélectionnez avec un clic de la souris  .

 

Puis cliquez avec la souris  sur le bouton  pour ajouter un script JavaScript

L’éditeur de code JavaScript s’affiche.

 

Création d’un script JavaScript d’utilisation en label des champs de texte PDF

Puis tapez comme exemple :

 

Ce script JavaScript affiche une boite d’information lorsqu’on clique sur le label champ texte PDF.

Sauvegarde du script

Sélectionnez avec la souris  le menu « Fichier/Enregistrer et quitter »

 

Dans la fenêtre « Propriétés du champ » cliquez avec la souris  sur 

Enregistrez en PDF avec un clic  sur , ou  +  + 

 

Enregistrez le PDF avec un clic  sur 

 

Champ texte PDF comme zone de saisie

Ajout d’un JavaScript de contrôle du format de la saisie dans le champ texte PDF

Saisissez « Saisissez un montant » dans Infobulle. Sélectionnez l’onglet Format avec un clic de la souris .

 

Puis après avec un clic  sélectionnez  dans le champ est formaté comme :

Dans la fenêtre « Propriétés du champ » cliquez avec la souris  sur 

Enregistrez en PDF avec un clic  sur , ou  +  + 

 

Enregistrez le PDF avec un clic  sur 

clic  dans le champ texte PDF

Sélectionnez tout le texte présent  + 

 

Tapez  

 

Tapez 

 

Comment afficher 10 000,00€ ?

Si on choisit maintenant dans l’onglet Format, Sur mesure

 

Nous avons les fonctions JavaScript qui sont utilisées pour gérer l’affichage.

Pour l’affichage nous avons AFNumber_Format(nDéci, stySépa, styMoins, actuMonnaie, styMonnaie, posiSymbMonaie)

nDéci : Nombre de décimales affichées après la virgule.

stySépa : séparateur des millier et décimale

  1. « , » comme séparateur des milliers et « . » pour les décimales.
  2. « . » comme séparateur des décimales seulement.
  3. « . » comme séparateur des milliers et « , » pour les décimales.
  4. « , » comme séparateur des décimales seulement.

styMoins : affichage des négatifs

  1. « - »,
  2. Texte en rouge,
  3. Texte entre parenthèses,
  4. Texte entre parenthèses rouges.

actuMonnaie : style de monnaie actuelle non connue.

styMonnaie : caractère pour le symbole monétaire.

posiSymbMonaie : position du symbole monétaire. Préfixe = true, Suffixe = false.

 

Donc si l’on remplace par AFNumber_Format(2, 2, 0, 0, "€", false)

On obtient

Cela ne répond pas totalement à 10 000,00€.

Ajout d’un JavaScript de contrôle du format de la saisie dans le champ texte PDF

Dans fenêtre « Propriétés du champ » du champ texte PDF, dans l’onglet Format sélectionnez avec un clic de la souris  

 

Sélectionnez l’onglet Valider avec un clic de la souris .

 

Puis avec un clic  sélectionnez 

Cliquez avec la souris  sur le bouton  pour ajouter un script JavaScript

L’éditeur de code JavaScript s’affiche.

Création d’un script JavaScript de validation d’un texte saisi dans un champ texte PDF

Puis tapez comme exemple :

 

Explication du script

event.value : retourne la valeur saisie dans le champ texte PDF.

.replace(…, ---); : Substitue une chaine de caractère «  » par une autre « --- ».

/\,(?=[^\,]+$)/g, "." :

« /…/ » C’est une expression régulière, un critère de recherche dans une chaine de caractères. Le programme se positionne dans la chaine de texte à la(les) position(s) du critère de recherche pour effectuer une opération (ici substitution) sur le(s) caractère(s).

« g » La recherche se fait sur tout le texte. Retrouve toutes les correspondances plutôt que de s'arrêter après la première.

« \, » L’antislash « \ » permet de préciser que c’est un caractère et pas une commande de l’expression régulière. La virgule « , » est sélectionnée comme caractère à rechercher.

« [^\,] » Renvoi le caractère qui n’est pas une virgule.

« [^\,]+) » Renvoi l’ensemble de caractères successifs sans virgule.

« [^\,]+$ » Renvoi l’ensemble de caractères successifs sans virgule à partir de la fin.

« \,(?=…) » Renvoi le caractère qui correspond à la virgule uniquement si la virgule est suivi par «  ».

« \,(?=[^\,]+$) » Renvoi la dernière virgule.

Pour plus de détail sur les expressions régulières.

event.target.textColor : target permet de récupérer le champ texte PDF, et textColor définit la couleur du texte.

var x = Number(event.value).toFixed(2); : Number converti une chaine de caractères en nombre. toFixed() définit le nombre de chiffres après la virgule d’un nombre.

x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ") + " €"; :

« toString() » Converti en chaine de caractères.

« \d » Renvoi le caractère chiffre (arabe). De 0 à 9.

« \d{3} » Renvoi 3 occurrences de chiffres arabes.

« (\d{3})+ » Renvoi l’ensemble des 3 occurrences de chiffres arabes.

« (\d{3})+(?!\d) » Renvoi l’ensemble des 3 occurrences de chiffres arabes, uniquement si les trois occurrences de chiffres arabes ne sont pas suivi par un chiffre arabe. Cela positionne le début de la recherche avant la virgule en fin de nombre.

« \B… » Renvoi la position où les caractères suivant et précédent sont du même type que «  » : soit lorsque les deux sont 3 occurrences de chiffres arabes. « \B(?=…) » Correspond à \B uniquement si \B est suivi par «  ». Si on peut trouver trois autres chiffres on insère entre les deux séries de 3 chiffres.

Sauvegarde du script

Sélectionnez avec la souris  le menu « Fichier/Enregistrer et quitter »

Dans la fenêtre « Propriétés du champ » cliquez avec la souris  sur 

Enregistrez en PDF avec un clic  sur , ou  +  + 

Enregistrez le PDF avec un clic  sur 

 

 

 

Nous avons maintenant le résultat recherché à l’affichage :-)

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.