Toutes mes réponses sur les forums
-
AuteurRéponses
-
30 novembre 2011 à 13:42 en réponse à : Besoin tutoriel / mode d’emploi pour code javascript sur Acrobat pro X – RÉPONDU #52299alexParticipant
Je n’y comprend rien. Envoyez votre formulaire.
30 novembre 2011 à 10:54 en réponse à : Besoin tutoriel / mode d’emploi pour code javascript sur Acrobat pro X – RÉPONDU #52296alexParticipantLa syntaxe est enigmatique pour moi!
if et else sont à mettre en minuscules.
Quel est la formule du mystérieux calcul à effectuer et où afficher le résultat ?30 novembre 2011 à 09:19 en réponse à : Besoin tutoriel / mode d’emploi pour code javascript sur Acrobat pro X – RÉPONDU #52294alexParticipantPour les calculs, la syntaxe JavaScript est la même dans Acrobat et en HTML.
Je vous conseille donc le site de developpez.com:
http://javascript.developpez.com/cours/
Pour ma part, pour les maths, j’utilise aussi un petit mémento JavaScript publié aux éditions Eyrolles: JavaScript précis & concis de David FlanaganCela dit, il faut bien maîtriser la gestion des évènements de l’environnement Acrobat pour rendre l’usage des formulaires agréable.
Bonne chance.
28 novembre 2011 à 08:06 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52213alexParticipantFormulaires LiveCycleDesigner et PDF Expert:
On peut oublier le JavaScript pour les formulaires développés sous LiveCycle Designer, les évènements ne sont pas pris en compte. Je n’ai pas testé le FormCalc.
Formulaires acroForm et PDF Expert:
Ce qui ne marche pas:
Un certain nombre de méthodes ne fonctionnent pas, en particulier tout ce qui est lié à un idle (entrée ou sortie souris dans un champ, méthodes de type app.setInterval), ainsi que des méthodes style app.popUpMenu et app.popUpMenuEx bien utiles. Les videos embarquées ne fonctionnent pas.
Ce qui marche:
Par contre, on peut lancer des scripts et manipuler les propriétés des objets (champs, dates). Je n’ai pas testé les manipulations des calques, ni des signets.PDF Expert est donc une bonne base de travail pour les formulaires acroForm sur iPad et sur iPhone (iOS 5).
alexParticipantUne variante à ta solution pour le fun…
[attachment deleted by admin]
alexParticipant1-Le script de calcul est au niveau du document:
Sous Acrobat 8, 9 :
Options avancées>Traitement du document>Scripts JavaScript. Saisir le nom du script (Cacul) puis “Ajouter”. Coller ici le script compris entre les {}.
function Calcul()
{
console.println(“Action utilisateur”);
if(this.event.target.name==”PrixHT”&TTC)
{
console.println(“Calcul du montant TTC”);
this.getField(“PrixTTC”).value=this.event.value*coefTVA;
}
if(this.event.target.name==”PrixTTC”&!TTC)
{
console.println(“Calcul du montant HT”);
this.getField(“PrixHT”).value=this.event.value/coefTVA;
}
}
Sous Acrobat X:
Outils>JavaScripts>Scripts JavaScript du document> Saisir le nom du script (Cacul) puis “Ajouter”. Coller ici le script compris entre les {}.2-Ce script (fonction) est lancé par l’évènement de validation du champ “PrixHT” ou “PrixTTC”.
Sous Acrobat 8, 9 :
Formulaires>Ajouter ou modifier des champs.
Clic-Droit sur le champ>Propriétés>Onglet Validation>
Cocher “Exécuter le script de validation personnalisé” puis “Modifier” pour saisir:
Calcul();
Sous Acrobat X :
Outils>Formulaires>Modifier.
Clic-Droit sur le champ>Propriétés>Onglet Validation>
Cocher “Exécuter le script de validation personnalisé” puis “Modifier” pour saisir:
Calcul();
Pour le champ “PrixHT”, Actions>Souris entrée>Lancer un JavaScript saisir le script suivant:
TTC=true;
console.println(“Preparation calcul TTC…”);
this.getField(“LibellePrixHT”).fillColor=color.white;
this.getField(“LibellePrixTTC”).fillColor=color.yellow;
Pour le champ “PrixTTC”, Actions>Souris entrée>Lancer un JavaScript saisir le script suivant:
TTC=false;
console.println(“Preparation calcul HT…”)
this.getField(“LibellePrixHT”).fillColor=color.yellow;
this.getField(“LibellePrixTTC”).fillColor=color.white;3-Pour le script d’ouverture sous Acrobat 8,9,X, clic droit sur la vignette de la page puis Propriétés> Onglet Action>Lancer un JavaScript puis Ajouter:
console.clear();
coefTVA=1.196;
TTC=true;
this.resetForm();
this.getField(“LibellePrixTTC”).value=”Montant TTC”;
this.getField(“LibellePrixHT”).value=”Montant HT”;alexParticipantMaquette avec champ pour la TVA.
On pourrait aussi calculer les montant HT tet TTC à partir de la saisie de la TVA ![attachment deleted by admin]
alexParticipantCette méthode n’est pas utilisable ici car le calcul doit fonctionner dans les deux sens:
- Calcul TTC si action sur HT
- Calcul HT si action sur TTC
[/list]
alexParticipantLe script suivant fera l’affaire pour trouver le mois précédant date à date et illustrera l’usage de l’objet Date…
function CalculDate()
{
console.println(“Action utilisateur calcul de date”);
chaine=this.event.value;
//Extraction des données à partir de la valeur du champ “DateExpiration”
jour=chaine.substring(0,2);
mois=chaine.substring(3,5);
annee=chaine.substring(6,10);
//Calcul du mois n-1 (les mois sont notés de 0 à 11)
mois=mois-2;
//Définition de l’objet date de renouvellement
dateRenouvellement=new Date(annee,mois,jour);
//Extraction et affichage de la date.
this.getField(“DateRenouvellement”).value=util.printd(“dd/mm/yyyy”,dateRenouvellement);
}Pour un calcul plus sophistiqué, j’ai déjà donné un exemple dans un autre POST.
Nota:il faut respecter le format de date jj/mm/aaaa[attachment deleted by admin]
alexParticipantLa maquette jointe montre comment résoudre ce problème.
Si on saisit un montant HT, le montant TTC est calculé, si on saisit un montant TTC le montant Ht est calculé.
La validation d’un des champs lance le programme ci-dessous, la variable TTC détectant au préalable la présence de la souris dans le champ “PrixTTC” (TTC=true) ou dans le champ “PrixHT” (TTC=false) :
function Calcul()
{
console.println(“Action utilisateur”);
if(this.event.target.name==”PrixHT”&TTC)
{
console.println(“Calcul du montant TTC”);
this.getField(“PrixTTC”).value=this.event.value*coefTVA;
}
if(this.event.target.name==”PrixTTC”&!TTC)
{
console.println(“Calcul du montant HT”);
this.getField(“PrixHT”).value=this.event.value/coefTVA;
}
}Le script d’ouverture de page fixe le paramètre de calcul de la TVA, initialise le formulaire, et autres détails sans importance.
console.clear();
coefTVA=1.196;
TTC=true;
this.resetForm();
this.getField(“LibellePrixTTC”).value=”Montant TTC”;
this.getField(“LibellePrixHT”).value=”Montant HT”;Lorsque la souris entre dans le champ “PrixHT”, TTC passe à true:
TTC=true;
console.println(“Preparation calcul TTC…”);
this.getField(“LibellePrixHT”).fillColor=color.white;
this.getField(“LibellePrixTTC”).fillColor=color.yellow;Lorsque la souris entre dans le champ “PrixTTC”, TTC passe à false:
TTC=false;
console.println(“Preparation calcul HT…”)
this.getField(“LibellePrixHT”).fillColor=color.yellow;
this.getField(“LibellePrixTTC”).fillColor=color.white;[attachment deleted by admin]
22 novembre 2011 à 11:24 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52212alexParticipantJe teste ça plus avant sur une application déjà bien rodée sur les autres plateformes (avec interactivité, videos,calques, formulaire, analyse de validité des saisies etc…) pour voir les corrections à apporter pour palier aux méthodes inopérantes et on en reparle.
22 novembre 2011 à 09:31 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52210alexParticipantCe “Reader” est décidément une bonne surprise et très au dessus d’ Adobe Reader:
1-Les champs de formulaire sont bien activés et saisissables. Leurs propriétés sont à peu près respectées.
2-Il interprète un certain nombre de méthodes JavaScript, en tout cas suffisamment pour envisager un travail sérieux.
3-Il ouvre les xfa et interprète une partie des méthodes JavaScript propres à LiveCycle Designer!
Il faut donc revoir en partie et tester les formulaires qui fonctionnent sur Adobe Reader Mac, Pc et Linux mais ce n’est pas insurmontable.
Bref, un filon à exploiter car, cerise sur le gâteau le submitForm() semble fonctionner (envoi de données vers un serveur)!
Je mange mon chapeau.22 novembre 2011 à 08:40 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52209alexParticipantUn complice américain veut me faire manger mon chapeau ! Il prétend qu’on peut saisir des données de formulaire avec PDF Expert pour iOS.
Je viens de dépenser 7.99 Euros pour me faire une idée. Evidemment, c’est l’aspect formulaire qui retiendra mon attention, suivi de près par l’interactivité (JS or not JS).
A suivre…
Pour les promesses, c’est là:
http://itunes.apple.com/app/pdf-expert-fill-forms-annotate/id393316844?mt=816 novembre 2011 à 12:04 en réponse à : Remplir un formulaire dans Adobe Reader sur tablette. – RÉPONDU #52207alexParticipantSur les palettes, inutile de chercher un lecteur PDF capable de prendre en charge les données de formulaire !
Par contre, on peut très bien saisir des données à partir d’une interface WEB écrite en HTML5+JavaScript ou bien en HTML5+pHp interfacé avec une base de données mySQL. Avec cette dernière méthode, toutes les tablettes sont immédiatement compatibles quelque soit le navigateur embarqué (le pHp s’exécute côté serveur) . On peut même générer des documents PDF à plat à partir des données mySQL.alexParticipantEtrange question… La réponse est peut-être juste ceci:
this.getField(“MonBeauChamp”).value=”Mon beau texte”;
ou bien cela pour inciter l’utilisateur à saisir un texte qui apparaîtra dans un champ texte:
reponseDefault=”Reponse proposee”;
this.getField(“MonBeauChamp”).value=app.response(“Objet de la Question”,”Titre de la question”,reponseDefault)16 novembre 2011 à 11:32 en réponse à : Fonctions Acrobat masquer temporairement un objet. – RÉPONDU #52243alexParticipantPour accéder aux propriétés des champs de formulaire il suffit d’afficher la liste de ces champs et de faire un clic droit (Ctrl Clic) sur le nom du champ dans la liste. L’avantage de cette manière de faire est de pouvoir aussi gérer l’ordre des tabulations, de visualiser les occurrences multiples d’un même champ dupliqué.
Sous Acrobat X PRO:
Outils>Formulaires>Modifier… la liste apparaît.
Sous Acrobat 9 PRO
Formulaires>Ajouter ou modifier des champs>Cliquer si nécessaire sur l’icône à gauche “Champs:manipuler les champs de formulaire”.alexParticipantAllez faire un tour par là:
http://tv.adobe.com/watch/adc-presents/input-for-mobile-devices-gesture-events/
Désolé c’est en anglais, très Evangelist Adobe, mais bon, c’est la tendance!alexParticipantOui, j’ai essayé d’ouvrir des formulaires .xfa sans succès. Dans le futur peut-être …
alexParticipant- Oui ça pourrait, car les dernières versions 9 et X d’Adobe Reader et d’Acrobat destinées à Mac et Pc privilégient ce format, mais ce n’est qu’une vague hypothèse.
Pour la publication sur iPad et Androïd, les produits qui ont le vent en poupe sont:- soit des produits qui partent de Indesign pour élaborer des formats d’eBook (Aquafadas, Adobe Digital Publishing Suite) que l’on consulte sur une application propriétaire (myKiosk pour Aquafadas, pour Adobe je ne sais pas si c’est sorti).
- soit des produits écrits en HTML5, que l’on consulte avec Safari sur iPad. Dans ce cas, on retrouve une vraie interactivité (on peut insérer du pHp et une connectivité à une base de données en SQL) tout en contrôlant presque bien la présentation grâce au HTML5, sans parler des vidéos. De plus on s’affranchit de l’App Store!
[/list]
Vous l’avez compris, j’ai un faible pour cette voie là. Elle est libre et le pHp est un vrai régal.
[/list][/list]alexParticipantLa version iPad et iPhone d’Adobe Reader est disponible.
Mais ne vous attendez pas à des miracles…
1-Pas d’objets de formulaire acroForm (boutons,champs de saisie,cases à cocher).
2-Pas de JavaScript évidemment.
3-Pas d’ouverture des xfa (formulaires élaborés sous LiveCycle Designer), un message indique que la version du Reader est inappropriée
4-Vidéos embarquées non fonctionnelles.Dur dur.
Ah si, les annotations de texte s’affichent! BofIntégrer du flash pour remédier à ces inconvénients ? A voir.
5 septembre 2011 à 14:32 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51903alexParticipantPour contourner ce problème il faudrait calculer la longueur du rectangle en fonction du numéro de page, au lieu de faire confiance à la taille du WordQuad qui est manifestement erronée (un petit bug dans cette fonction lorsqu’on est en italique). On fera ça la prochaine fois …
alexParticipantVoilà. Attention, lors de la saisie de la date de naissance, il faut toujours respecter le format de 10 digits.
[attachment deleted by admin]
alexParticipantVariante: calcul sur validation du champ de saisie (suppression du bouton de calcul).
[attachment deleted by admin]
alexParticipantUn truc de ce genre…
Le script de calcul situé au niveau du document, est lançé par le bouton “Calcul”. Il est commenté.
En ouvrant la console, vous pouvez voir les calculs intermédiaires.
Voir au passage la manipulation de l’objet Date (valable aussi sur une page Web).
Attention, le champ “Texte2” n’a pas de format imposé.[attachment deleted by admin]
alexParticipantOn va ajouter une case à cocher invisible et la cocher par défaut tant que la saisie de la date de naissance ne sera pas valide. C’est une méthode assez classique pour initialiser les questionnaires d’évaluation. Je vous fais une maquette dès que possible (d’ici lundi).
26 août 2011 à 11:32 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51899alexParticipantOui, enlever les commandes console.println(), ou les passer en commentaires.
Ajouter ceci au début:
d0=new Date();
debut=util.printd(“dd-mm HH:MM”,d0)
console.println(“Debut process:”+debut)
Ajouter ceci à la fin:
df=new Date();
fin=util.printd(“dd-mm HH:MM”,df)
console.println(“Fin process:”+fin)
delta=(df.valueOf()-d0.valueOf())/1000/60
console.println(“Duree process:”+delta+” minutes”)26 août 2011 à 08:03 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51897alexParticipantJuste pour comprendre, ça peut attendre une ou deux semaines bien sûr.
26 août 2011 à 06:31 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51894alexParticipantJe ne comprend pas, peux-tu donner l’ensemble du code ?
25 août 2011 à 10:08 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51892alexParticipantLa somme est traitée comme une concaténation de caractères (“30″+”pp-1”) !
Essayez de forcer le calcul comme suit:
action=”this.pageNum=”+(Math.round(30)+pp-1);
Ou bien:
action=”this.pageNum=”+(1*30+pp-1);alexParticipantCi-joint la maquette sans console affichée et sans bouton de test.
Soutenons les sportifs![attachment deleted by admin]
alexParticipantSupprimer la ligne suivante en début de script:
console.show();25 août 2011 à 06:35 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51889alexParticipantSi la page 1 est en 30ème position et si on ignore les 29 première pages du document, il faut doute faut-il écrire:
action=”this.pageNum=”+(30+pp-1);24 août 2011 à 17:48 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51887alexParticipantTu me poses une colle, j’aime bien l’écrit et je ne suis pas très DVD ou Webminar, si je passe chez Eyrolles, je regarde ce qui est le mieux …
Autre source, excellente et pas seulement en Javascript (j’ai trouvé tout ce qu’il faut en AJAX, SQL, pHp et Flex):
http://javascript.developpez.com/cours/24 août 2011 à 15:02 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51885alexParticipantIl suffit de partir de la page 31, ce qui donne:
for (var p = 30; p < this.numPages; p++)
Le JavaScript pour les nuls, ça existe:
http://www.amazon.fr/JavaScript-pour-nuls-Emily-VanderVeer/dp/2844277160
Mais il s’agit du JavaScript pour HTML, pas de celui qui gère les objets d’Acrobat, pourtant les bases sont là. Pour trouver votre bonheur faites un tour chez Eyrolles.alexParticipantVoici une maquette, merci de vérifier qu’elle fonctionne. Tout est dans le script Calcul() lançé par la validation de la date de naissance.
J’espère que les commentaires suffisent, il faudrait paramétrer un peu pour retrouver le fonctionnement d’année en année…[attachment deleted by admin]
23 août 2011 à 12:31 en réponse à : Comment activer "les droits étendus pour Reader" en mode batch ? – RÉPONDU #51952alexParticipantOn peut éviter la ruine par une petite ligne de JavaScript lançée au moment opportun sous Acrobat 9 ou X:
app.execMenuItem(“DIGSIG:UBDoc”);
Pour ma part, je vous conseille d’écrire des programmes .js au niveau d’Acrobat (répertoire JavaScript sur Mac ou Pc) pour manipuler vos documents plutôt que de recourir aux batchs, c’est un peu plus souple quand on maîtrise le sujet.21 août 2011 à 11:57 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51881alexParticipantPour ne pas saturer la console, placer un console.clear() comme suit:
…
for (var p = 0; p < this.numPages; p++)
{
console.clear();
console.println(“Page “+(p+1));
var numWords = this.getPageNumWords(p);
…
Ainsi, la console sera effacée à chaque ouverture de page…On peut aussi supprimer toutes les impressions dans la console.En ce qui concerne le temps de calcul, c’est une autre affaire…Peut-être que la méthode que j’ai utilisé dans la mesure d’encrage pour définir le rectangle est meilleure mais ce n’est pas sûr.
20 août 2011 à 07:12 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51879alexParticipantA tester quand même avec un document volumineux ! J’ai ajouté dans la recherche les mots “Page” et “page”:
if ( ckWord == “page”|ckWord == “Page”)
Bonne vacances !alexParticipantBonjour,
Pour ce problème ne vaut-il pas mieux calculer les âges des personnes à partir de la date de naissance saisie et de la date du jour ? A partir de là il ne sera pas difficile aux spécialistes du JavaScript en vacances de cocher la case ad’oc du bouton radio.
Pouvez-vous leur donner les plages d’age correspondant aux différentes catégories?
En attendant leur retour…15 août 2011 à 09:22 en réponse à : Indexation des renvois de page dans document PDF. – RÉSOLU #51876alexParticipantSi j’ai bien compris, voici qui devrait mieux se comporter…
Les erreurs sont signalées dans le script.console.clear();
console.println(“Processus de creation des liens…”);
for (var p = 0; p < this.numPages; p++)
{
console.println(“Page “+(p+1));
var numWords = this.getPageNumWords(p);
for (var i=0; i{
var ckWord = this.getPageNthWord(p, i, true);
console.println(i+”-Mot trouve : “+ckWord);
if ( ckWord == “page”|ckWord == “Page”)
{
//Analyse du mot suivant
MotSuivant=this.getPageNthWord(p,(i+1),true);
console.println(“Mot suivant trouve, lien a creer : “+MotSuivant);
//Premier caractère est-il un chiffre?
if(MotSuivant.charCodeAt(0)>=48&MotSuivant.charCodeAt(0)<=57)
{
// pp numéro de la page indexee
//erreur ici
var pp = MotSuivant;
//fin erreur
console.println(“Créer des liens, mot suivant trouve est un chiffre, lien a creer : “+pp);
var q = this.getPageNthWordQuads(p, i+1);
// convert quads in default user space to rotated
// user space used by Links.
m = (new Matrix2D).fromRotated(this,p);
mInv = m.invert()
r = mInv.transform(q)
r=r.toString()
r = r.split(“,”);
l = addLink(p, [r[4], r[5], r[2], r[3]]);
l.borderColor = color.red
l.borderWidth = 1;
//erreur ici
action=”this.pageNum=”+(pp-1);
l.setAction(action);
//fin erreur
}
}
}
}26 juillet 2011 à 17:36 en réponse à : Message d’erreur formulaire Acrobat LiveCycle Designer. – RÉPONDU #51846alexParticipantIl y a probablement une division par 0. Il suffit de saisir une autre valeur non nulle dans le champ idoine et d’enregistrer le formulaire.
Mon conseil: utiliser le JavaScript plutôt que FormCalc pour les calculs et surtout tester la validité des saisies.alexParticipantJe déconseille de remplacer les 0 par des blancs (comme proposé dans le topic 1329). Ces blancs poseront des problèmes de format à toute opération de calcul ultérieure. C’est le cas ici, on aura à faire une somme… Bonne soirée.
alexParticipantJe vous déconseille de remplacer la va valeur calculée 0.00 par un blanc. Ici je force la couleur du texte en noir pour les valeurs positives, en couleur de fond pour la valeur 0. Il faut finir le travail pour les autres champs.
Pour le champ texte “Texte23”:
Onglet Calcul > Script de calcul personnalisé:console.clear();
//Calculer la valeur à afficher
this.event.value=this.getField(“C1”).value*this.getField(“Texte22”).value;
//Mémoriser la couleur du fond
CouleurReference=this.getField(“Texte23”).fillColor;
if(this.event.value>0)
{
//Valeur non nulle> Passer le texte en noir.
this.getField(“Texte23”).textColor=color.black;
}
else
{
//Valeur nulle > Le texte aura la même couleur que le fond
this.getField(“Texte23”).textColor=CouleurReference;
}Exemple joint pour le premier champ calculé uniquement.
[attachment deleted by admin]
15 juin 2011 à 16:24 en réponse à : Rendre champ obligatoire que si une case est cochée. – RÉSOLU #51773alexParticipantDésolé, il y a une petite erreur, voici le script exact :
this.getField(“Saisie.3”).required=this.getField(“Case.3”).isBoxChecked(0);
console.println (this.getField(“Saisie.3”).required);Il manquait la parenthèse sur la propiété isBoxChecked
Oui, c’est le moment ou la souris est relachée15 juin 2011 à 16:14 en réponse à : Rendre champ obligatoire que si une case est cochée. – RÉSOLU #51771alexParticipantOui, action>Souris relachée
alexParticipantCi joint le formulaire corrigé avec le script qui doit être lancé par le champ “C1” (onglet Format>Catégorie de format personnalisé>Script de touches personnalisé) ://début du script
if(!event.willCommit)
{
//Valeurs par defaut
this.getField(“C2”).value =0
this.getField(“C3”).value =0;
//Valeurs conditionnelles
if(event.change==”U.G.C”)
{
this.getField(“C2”).value =4.5;
this.getField(“C3”).value =6.40;
}
if(event.change==”PATHE-GAUMONT”)
{
this.getField(“C2”).value =5.25;
this.getField(“C3”).value =7.40;
}
if(event.change==”UTOPIA”)
{
this.getField(“C2”).value .15;
this.getField(“C3”).value =4.50;
}
}[attachment deleted by admin]
15 juin 2011 à 15:27 en réponse à : Rendre champ obligatoire que si une case est cochée. – RÉSOLU #51768alexParticipantPlacer le script suivant dans la case à cocher :
this.getField(“NomDuChampDeSaisie”).required=this.getField(“CaseACocher”).isBoxChecked;27 mai 2011 à 19:29 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51737alexParticipantC’est possible. Je ne pourrai vous répondre que mercredi, je suis en vacance avec un iPad…. Donc sans acrobat . A bientôt.
27 mai 2011 à 14:36 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51735alexParticipantMa précédente maquette n’est pas au point.
Voilà qui sera mieux (voir pièce jointe).
Sur Acrobat 8 et 9:
Script de document:
Options avancées>Traitement du document>scripts JavaScript…
Script sur action:
Propriétés du champ texte>Onglet Action>Script de champ désactivé.
Ici les tests sont faits sur les longueurs des chaînes de saisie, par exemple pour un email il faudrait au moins 3 caractères (au lieu de 1 dans mon exemple) , on progresse mais on est loin d’une solution PRO![attachment deleted by admin]
27 mai 2011 à 13:38 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51734alexParticipantSur Acrobat 8 et 9:
Script de document:
Options avancées>Traitement du document>scripts JavaScript…
Script de format personnalisé:
Propriétés du champ texte>Onglet Format>Script de format personnalisé.27 mai 2011 à 10:09 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51731alexParticipantOn est bien d’accord, mais on peut capter par un script lançé lors de l’enregistrement du formulaire, l’origine de l’action (bouton “Enregistrer” ou tout autre mode d’enregistrement” par menu ou clavier) et éditer une alerte conseillant vivement l’usage de ce bouton plutôt que les commandes naturelles.
27 mai 2011 à 08:05 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51729alexParticipantCi-joint la maquette pour vous aider à aller plus loin.
Le script de document Analyse() se contente de vérifier qu’une saisie a bien été effectuée dans l’un des trois champs requis. Ce n’est pas suffisant pour un usage professionnel. Ce script est lançé en tant que script de format personnalisé.
Je ne pourrai pas suivre ce fil dans les jours qui viennent.
A bientôt.[attachment deleted by admin]
26 mai 2011 à 11:05 en réponse à : Double fonction sur un bouton dans formulaire PDF – RÉPONDU #51726alexParticipantQuelques remarques:
1-eformpdf_submitForm();
n’est pas une méthode, ce pourrait être une fonction si celle-ci était définie.
this.submitForm();
est bien une méthode mais elle est réservée à l’envoi de données de formulaire et il faut la paraméter correctement.
2-Si l’une des trois conditions logiques est satisfaite, le bouton “Enregistrer ” restera invisible, sinon, ce bouton apparaîtra. On ne voit nulle part de condition logique…
3-Pour être rigoureux, il faut être plus exigeant avec les saisies, le constat du champ non vide est insuffisant.
4-Pour qu’il soit possible d’enregistrer le formulaire avec ses données sous Adobe Reader, il faudra activer les “Reader Extension” avant d’enregistrer le formulaire sous Adobe Acrobat.
Je vais vous faire une petite maquette d’ici demain soir.alexParticipantC’est peut-être l’attente de nouveaux genres qui impose le choix du champ texte? Mais bon, on se tient au problème posé.
En ce qui concerne l’équation il y a une erreur de logique combinatoire si on admet que !== est remplacé par != .
Le <> (différend de ) est utilisé par exemple dans les expressions des formules sous tableurs Excel, pas en JavaScript.
Enfin, il est possible de positionner le focus sur le champ de saisie si la saisie est incorrecte par:
this.getField(“Sexe1”).setFocus();
Mais cette méthode ne peut être lancée depuis le script embarqué par le champ.
C’est tout pour aujourd’hui. Bonne soirée.alexParticipantPour respecter votre logique voici le script à embarquer dans le champ de saisie:
//Pour visualiser la console Ctrl-J ou Pomme-J sur Mac
//Reset console.
console.clear();
//Captage valeur saisie
ff=this.event.value;
//Affichage valeur console.
console.println(“Valeur lue:”+ff);
if ((ff == “H”) |(ff == “F”))
{
//Affichage information sur console.
console.println(“Saisie valide!”);
//Alerte facultative
app.alert({
cMsg: “Le format est bon!.”,
cTitle: “Confirmation”,
nIcon:3
});
}
else
{
//Affichage information sur console.
console.println(“Saisie invalide!”);
//Alerte de saisie incorrecte
app.alert({
cMsg: “Veuillez indiquer le bon format pour le sexe (H ou F).”,
cTitle: “Erreur”,
nIcon:1
});
}Ci-joint une maquette illustrant votre exemple.
Cela dit, pourquoi ne pas utiliser un simple bouton radio (trois occurences: Homme, Femme, Non coché, valeur par défaut Non coché) avec une analyse de validité à postériori?Petite remarque: avez-vous bien réfléchi à la validité de votre expression logique (f.value !== “H”) || (f.value !== “F”) Hum?
[attachment deleted by admin]
alexParticipantNon, ce n’est pas possible. Téléchargez une version TRIAL d’Acrobat PRO valide un mois.
alexParticipantCeci est assez instructif aussi quant à l’uasage de Scribus et l’usage de listes:
alexParticipantPour faire simple, voici l’exemple le plus utilisé par les membres de ce forum. Reste à corriger quelques unicodes, (Amérique s’écrit Amu00E9rique)..
[attachment deleted by admin]
5 mai 2011 à 15:40 en réponse à : Javascript pour PDF avec scribus : listes déroulantes. – RÉPONDU #51658alexParticipantVoici l’exemple type apparemment le plus utilisé par les habitués de ce forum si je me réfère au nombre de téléchargements (plus de 100), mais il faut Acrobat PRO pour le paramétrer (utiliser une version TRIAL valide 1 mois si nécessaire).
Le paramétrage sous Scribus sous Scribus doit être possible… A voir… Pour ma part, je ne l’ai utilisé qu’une fois et je ne sais pas comment on lance un script de touches personnalisé (listes mères).
Il y a aussi quelques fautes à corriger dans les unicodes (exemple Amérique s’écrit Amu00E9rique).
Est-ce suffisant?[attachment deleted by admin]
alexParticipantIl y a quelques petits bugs. En effet, la page MASTER devrait être la référence.
On corrigera ça dans une version plus aboutie dès que j’en aurai le loisir.1 avril 2011 à 16:37 en réponse à : Bloquer la saisie d’un champ en fonction de la valeur du bouton radio #51589alexParticipantOn ne va pas vous laisser tomber… Lundi vous aurez une petite maquette.
alexParticipantJ’ai écris ces codes à la volée, sans tester, il est donc assez normal qu’il y ait des erreurs.
Utilisez-vous bien le bon “Machine à souches.pdf”?Je ferai à partir de cette ébauche une application mixte (souches et tickets) qu’on pourrait peut-être intégrer à abracadabraTool avec la bénédiction de Merlin, car apparemment, vu le nombre de téléchargements, ça intéresse du monde.
Attention: il n’est pas possible, dans cette application, de dupliquer des codes bar avec des contenus variables.
alexParticipantEdition des souches:
Voilà le script de l’application:
3-Le script machinesouches.js à intégrer dans le répertoire JavaScript.L’extension .jpg doit être remplacée par .js
Nota:
Le nombre de tickets par souche est un paramètre fixé à 10 en début de ce script.
C’est le maximum que je puisse faire dans le cadre de ce forum.[attachment deleted by admin]
alexParticipantEdition des souches:
Voilà le second à adapter (ne pas changer les noms des champs)
2-La page PageMasterSouche.pdf qui embarque la maquette des souches (3 dans mon exemple).[attachment deleted by admin]
alexParticipantEdition des souches:
Pour réaliser ça, il faut tout reprendre, ce que j’ai fait:
1-Le document de paramétrage “Machine à souches”
2-La page PageMasterSouche.pdf qui embarque la maquette des souches (3 dans mon exemple).
3-Le script machinesouches.js à intégrer dans le répertoire JavaScript.
Voici le premier élément.[attachment deleted by admin]
31 mars 2011 à 16:52 en réponse à : Bloquer la saisie d’un champ en fonction de la valeur du bouton radio #51586alexParticipantChef Merlin, ou tu abuses du rosé de Provence, ou tu as été abusé par la formulation incorrecte d’asengs:
L’objet “bouton radio” se compose d’un ensemble d’occurences auxquelles tu peux associer autant de valeurs…
Quand nous aurons compris le problème, nous proposerons un script.alexParticipantDans le script du fichier machinebillets.js, lignes 56 à 69 on a:
Numero=(indexpage-1)*UnitesParPage+indexchamp;
Marque=Numero;
if(Numero<10000){Marque="0"+Numero;}
if(Numero<1000){Marque="00"+Numero;}
if(Numero<100){Marque="000"+Numero;}
if(Numero<10){Marque="0000"+Numero;}
NouveauNomChamp=”Num”+Numero;
this.addField(NouveauNomChamp,”text”,indexpage,rectangle[indexchamp]);
this.getField(NouveauNomChamp).value=Numero;
NouveauNomChampCB=”Codebar”+Numero;
this.addField(NouveauNomChampCB,”text”,indexpage,rectangleCB[indexchamp]);
this.getField(NouveauNomChampCB).value=Numero;
this.getField(NouveauNomChampCB).borderColor=color.transparent;
this.getField(NouveauNomChampCB).textColor=color.gray;Il faut faire un nouveau calcul au niveau indiqué ici en notatnt que:
-indexpage est le rang de la page (0 à this.numPages)
-indexChamp est le rang du champ dans la page (de 0 à UnitesParPage)
-Numero est le rang du ticket calculé ligne 56
Je suis passé par la variable Marque qui ajoute des 0 au numéro pour que l’on affiche toujours le numéro avec 5 digits…Numero=(indexpage-1)*UnitesParPage+indexchamp;
Marque=Numero;
if(Numero<10000){Marque="0"+Numero;}
if(Numero<1000){Marque="00"+Numero;}
if(Numero<100){Marque="000"+Numero;}
if(Numero<10){Marque="0000"+Numero;}
NouveauNomChamp=”Num”+Numero;
this.addField(NouveauNomChamp,”text”,indexpage,rectangle[indexchamp]);
//Nouveau calcul de la valeur du champs ici
ValeurDuChamp=………………..;
this.getField(NouveauNomChamp).value=ValeurDuChamp;
//Fin du nouveau calcul
NouveauNomChampCB=”Codebar”+Numero;
this.addField(NouveauNomChampCB,”text”,indexpage,rectangleCB[indexchamp]);
this.getField(NouveauNomChampCB).value=Numero;
this.getField(NouveauNomChampCB).borderColor=color.transparent;
this.getField(NouveauNomChampCB).textColor=color.gray;Mais je n’ai pas compris quel calcul faire…. A la session de rattrapage, peut-être?
Sur Mac, comme beaucoup de gens, je travaille avec Eclipse, parfois avec TextWrangler même si c’est un peu lourd pour le JavaScript. Je vais essayer TextMate que je ne connais pas.
Bonne soirée à tous.alexParticipantEt oui, il faut que la page MASTER soit conforme au paramétrage (nombre de tickets par page)! Je ne teste ces choses là que pour des versions professionnelles.
En ce qui concerne l’insertion de numéros calculés, il faut enter dans le script et modifier la valeur du contenu du champ en fonction de la page et du numéro de ticket. Je ne connais pas assez votre problématique pour vous aider.alexParticipantBonjour,
Quelle version d’Acrobat PRO utilisez-vous ?
Sur Mac ou Pc?
Avez-vous modifié le script initial ?
Le message que vous avez (trustedcreationtickets is not defined) provient du fait que le plug in n’est pas installé correctement et la fonction trustedcreationtickets ne peut être appelée.
Dans la console, on devrait voir une trace de cette installation, ici on ne voit rien.alexParticipantVoici le script qui gère l’affichages des champs associés aux calques (exemple sur le ftp)
La fonction GestionChamps2 est une fonction de document est lancée en ouverture de page 2.
Trois phases:
1-On affiche tous les champs.
2-On masque tous les champs associés aux calques (noms commençant par FOCH,DVL,BCT…)
3-On affiche les champs associés au calque sélectionné.En fait, la gestion manuelle des boutons radios ne sert à rien si on respecte bien le nommage des champs.
function GestionChamps2()
{
//Gestion des champs
console.clear();
choix=this.getField(“Choix amphi”).valueAsString;
console.println(“Valeur du bouton radio=”+choix);
//Affichage de tous les champs
indexField=0;
while(indexField{
nom=this.getNthFieldName(indexField);
this.getField(nom).hidden=false;
indexField=indexField+1;
}
//Masquage des champs associés aux calques
indexField=0;
while(indexField{
nom=this.getNthFieldName(indexField);
if(nom.substring(0,4)==”FOCH”|nom.substring(0,3)==”DVL”|nom.substring(0,3)==”BCT”|nom.substring(0,3)==”COM”|nom.substring(0,3)==”MOD”)
{
//Masquage
this.getField(nom).hidden=true;
console.println(“Le champ “+nom+” est masqué.”)
}
indexField=indexField+1;
}
//Affichage des champs liés au calque retenu.
indexField=0;
while(indexField{
nom=this.getNthFieldName(indexField);
if(nom.substring(0,choix.length)==choix)
{
//Masquage
this.getField(nom).hidden=false;
console.println(“Le champ “+nom+” est affiché.”)
}
indexField=indexField+1;
}
//console.show();
}alexParticipantJe reviens sur mon post précédant. Pour limiter l’affichage des champs de saisie à ceux du calque sélectionné, il faut les nommer de telle manière qu’un script puisse les discriminer, comme suit:
Noms commençant par FOCH-, ne seront affichés que si le calque FOCH est activé.
Noms commençant par DVL-, ne seront affichés que si le calque DVL est activé.
Noms commençant par BCT-, ne seront affichés que si le calque BCT est activé.
Noms commençant par COM-, ne seront affichés que si le calque COM est activé…
ainsi que MOD- et AM-
Tous les autres champs sont visibles.
Puis ajouter un script à l’ouverture de la seconde page.alexParticipantOn pourrait ajouter au script précédant quelques lignes de code pour masquer les champs parasites associés aux calques non visualisés.
Eh oui, les templates, c’est fini depuis Reader 8…Il est donc judicieux d’associer des champs et des calques (avec AcroForm)alexParticipantMon script est une “rustine”, il faudrait voir pourquoi l’état des calques n’est pas conservé après enregistrement…
Merlin, une idée ?alexParticipantPlacez ce script en ouverture de page de votre formulaire:
//Réactivation des calques sélectionnés
console.clear();
console.println(“Valeur du bouton radio=”+this.getField(“Choix amphi”).value);
//Récupération des calques de la page 2
ocgArray=this.getOCGs(1)
index=0;
while(index{
//Recherche des calques ayant pour nom, la valeur du bouton radio et “page base”
if(ocgArray[index].name==this.getField(“Choix amphi”).value|ocgArray[index].name==”page base”)
{
ocgArray[index].state=true;
console.println(ocgArray[index].name+” activé.”);
}
else
{
ocgArray[index].state=false;
console.println(ocgArray[index].name+” désactivé.”);
}
index=index+1;
}
//console.show();J’ai aussi déposé votre formulaire sur le ftp avec cette correction. Ctrl-J ou Pomme-J permet d’ouvrir la console et de voir le fonctionnement.
alexParticipantEffectivement, votre formulaire devrait fonctionner en l’état ! Je viens de reproduire votre problème. Je vais vous faire un script d’ouverture qui, en fonction de la case cochée réactive le calque correspondant.
alexParticipantJ’ai bien reçu ce formulaire.
Je suppose que vous souhaitez ne visualiser qu’un calque à la fois et dans ce cas, pourquoi n’avoir pas opté pour un bouton radio (un choix unique parmi les 5) ?
Si vous me confirmez ça, je remplacerai les cases à cocher par un bouton radio (ayant l’aspect d’une case à cocher) et l’action d’activation de calque par un script qui n’agira que le calque qui vous intéresse en désactivant les autres. Lors de l’enregistrement de votre formulaire, seul le calque retenu sera activé à condition que vous preniez garde de bien activer les “Reader Extensions” (Options avancées>Etendre les fonctions D’Adobe Reader si vous êtes sur Acrobat 8 ou 9). J’attend votre réponse.alexParticipantRegardez bien sur ce forum, nous avons déjà pas mal de choses concernant l’utilisation des calques, y compris les manipulations par JavaScript…
Mais envoyez votre maquette, tout ira plus vite..car je n-ai pas vraiment compris le problème!10 mars 2011 à 09:07 en réponse à : Protéger / dé-protéger un champ de texte de l’écriture. – RÉSOLU #51519alexParticipantBonjour, voici une autre manière d’écrire le script (une seule ligne, pas de test!):
//On change le statut du groupe à partir de celui d’une occurence:
this.getField(“Theme”).readonly = !this.getField(“Theme.0”).readonly ;
C’est le point d’exclamation qui fait tout le travail!!!!alexParticipantC’est normal, ce script est un script associé à l’application Acrobat, il pourrait sans doute être adapté au traitement par lot
3 mars 2011 à 14:43 en réponse à : Remplir automatiquement formulaire pdf à partir de données excel #51491alexParticipantNous sommes d’accord, 150 $ c’est plus avantageux que 2 jours de travail, mais peu pédagogique. Bonne continuation….
alexParticipantVu avec Merlin… Nous allons effectivement réintégrer un outil de découpage dans AbracadabraTool X.
2 mars 2011 à 20:04 en réponse à : Remplir automatiquement formulaire pdf à partir de données excel #51489alexParticipantCet outil (payant) fonctionne comme je l’ai mentionné plus haut (solution 1 : lien ODBC, requêtes SQL vers la base et édition des formulaires et ce uniquement sur Pc pour les raisons que j’ai évoqué).
Il a l’énorme avantage d’être prêt à l’emploi… là où il faudrait un à deux jours pour le recréer…
Attention, la version démo a une durée de 30 jours et n’active pas les Reader Extensions.alexParticipantJe crois qu’il serait bon d’intégrer à abracadabraTool X un outil d’extraction plus élaboré que les actions basiques d’extraction d’Acrobat… Reste à voir quelles fonctionnalités… Les deux scripts que j’ai proposé ci-dessus peuvent être une base pour la version compatible avec Acrobat X.
alexParticipantAvant de lancer le script de découpage, régler les préférences d’Acrobat PRO comme indiqué dans ce document.
[attachment deleted by admin]
alexParticipant1-Intégrer le script d’application (fourni ici après avoir changé l’extension .gif en .js):
Script à utiliser avec Acrobat PRO 8,9,10 et à intégrer comme suit:
Placement du script dans le répertoire JavaScript d’Acrobat sur PC à partir du bureau:
C:/Programme/Adobe/Acrobat9.0/Acrobat/Javascript
Placement du script dans le répertoire JavaScript d’Acrobat sur Mac, à partir du bureau:
Aller>Applications>Adobe Acrobat 9 Pro>Adobe Acrobat Pro.app>
Ctrl Clic > Afficher le contenu du paquet>Contents>MacOS>JavaScripts
2-Régler les préférences d’Acrobat (voir document joint, preferencesJS.pdf)
3-Ouvrir le document à traiter. Un nouvel item de menu apparaît dans le menu Document>Outils extraction>Extraction de toutes les pages.[attachment deleted by admin]
alexParticipantVous pouvez télécharger la version d’essai d’Acrobat PRO d’une durée d’un mois,c’est gratuit, ainsi vous aurez largement le temps nécessaire à votre opération de découpage…
http://acrobat.buy.fr.sem.adobe.com/content/a10_pro?sdid=IATYJ
…alexParticipantSi vous avez Acrobat PRO, un petit script adapté à votre problème fera l’affaire. Nous avons déjà traité un problème équivalent très recemment (PDF et Acrobat>extraction de fichiers pdf). Je vous fait ça comme contribution à la cause d’Hegalaldia.
Si vous n’avez pas Acrobat PRO, l’affaire se corse.
Quelle est votre situation?25 février 2011 à 10:30 en réponse à : Remplir automatiquement formulaire pdf à partir de données excel #51484alexParticipantLe lien vers la note technique étant rompu, voici les informations nécessaires à l’activation de la connexion ODBC sur PC:
ADBC Support
Acrobat Database Connectivity (ADBC) can now be turned on and off via a registry setting.
To activate ADBC, create a registry key of type DWORD with the name “bJSEnable” and a value of “true” (1) in the following location:
HKEY_CURRENT_USERSOFTWAREAdobeAdobe Acrobat8.0ADBC
This activates ADBC in Acrobat 8.0. In previous releases of Acrobat, ADBC was active by default.
In Acrobat 8.0, this setting has been changed to require user intervention to activate ADBC because most users do not want to have ADBC accessible from PDF.
Windows shell command to activate ADBC:
reg add “HKEY_CURRENT_USERSOFTWAREAdobeAdobe Acrobat8.0ADBC” /v bJSEnable /t REG_DWORD /d 1Bon courage.
25 février 2011 à 10:14 en réponse à : Remplir automatiquement formulaire pdf à partir de données excel #51483alexParticipantVoici un exemple de connexion fourni par PlanetPDF:
http://www.planetpdf.com/developer/article.asp?ContentID=6088Qu’il s’agisse de données provenant d’une table Excel ou Access, le principe est le même.
25 février 2011 à 09:45 en réponse à : Remplir automatiquement formulaire pdf à partir de données excel #51481alexParticipantLes solutions:
1-Sur Acrobat, avec du JavaScript:
Sur Pc uniquement, il est possible d’automatiser le processus en utilisant l’objet ADBC d’Acrobat et en le connectant directement à Excel.
Une requête SQL remplirait chaque formulaire. Il faudrait pour cela développer un script au niveau de l’application Acrobat qui travaillerait en contexte privilégié. pour effectuer les tâches suivantes:
a-Formulaire ouvert.
b-Connexion ODBC active
c-Pour chaque item:
c1-Requête des données item ( requeteSQL=”SELECT * FROM Table “; )
c2-Remplissage formulaire (une série de this.getField(“Champxx”).value=rowData[Champxx]; )
c3-Enregistrement du formulaire sous un nom propre à l’enregistrement (à définir).
Nota: pour rendre l’objet ADBC actif dans Acrobat, il faut modifier une clé de registre. J’en ai déjà parlé ici.2-Sur un serveur Web avec un programme pHp associé à une base de données mySQL
a-Importer le fichier Excel dans la base mySQL (attention auformat des dates).
b-associer une classe pHp permettant de créer du pdf (par exemple FPDF si du PDF texte à plat convient)
c-écrire un programme pHp effectuant pour chaque item les mêmes fonctionalités que le script JavaScript ci-dessus (c1,c2,c3)Je ne peux pas faire ça dans le cadre de ce forum. Désolé.
alexParticipantPas du tout, la version X sera unique et compatible avec les versions 8,9,X d’Acrobat. Seule différence avec ce que vous avez expérimenté, ll’item de lancement du script sera accroché au menu “Edition”, sous-menu “Outils Extraction”. D’autre items pourraient être ajoutés pour d’autres applications voisines ou le paramétrage.
alexParticipantMerlin est en train de tester une version Acrobat X qu’il mettra en ligne dès que possible.
alexParticipantVoici le script avec une extension .gif à changer en .js avant de le placer dans le répertoire de l’application.
[attachment deleted by admin]
alexParticipant1-Intégrer le script d’application (fourni dans le post suivant):
Script à utiliser avec Acrobat PRO 8,9,10 et à intégrer comme suit:
Placement du script dans le répertoire JavaScript d’Acrobat sur PC à partir du bureau:
C:/Programme/Adobe/Acrobat9.0/Acrobat/Javascript
Placement du script dans le répertoire JavaScript d’Acrobat sur Mac, à partir du bureau:
Aller>Applications>Adobe Acrobat 9 Pro>Adobe Acrobat Pro.app>
Ctrl Clic > Afficher le contenu du paquet>Contents>MacOS>JavaScripts
2-Régler les préférences d’Acrobat (voir document joint, preferencesJS.pdf)
3-Ouvrir le document à traiter. Un nouvel item de menu apparaît dans le menu Document>Outils extraction>Extraction.
On peut choisir la page de coupe et le nom des deux fichiers résultants.Pour les curieux, ouvrir la console.
[attachment deleted by admin]
alexParticipantPour que ce soit automatisé, il faut développer un script au niveau de l’application Acrobat (car il faut travailler en contexte privilégié pour effectuer les extractions et recréer des documents). Le mieux serait d’ajouter un outil à abracadabraTool. Je vais préparer une maquette à utiliser avec les versions 8,9,X, mais il faudra patienter jusqu’à lundi pour cause de surbooking JavaScript.
14 février 2011 à 13:21 en réponse à : Copier les données d’un champ texte dans un champ en lecture seule. RÉSOLU #51419alexParticipantLe texte cible est mis à jour à chaque saisie du texte source, ici avec correction d’un petit bug de la version précédante (retard d’un digit à l’affichage).
[attachment deleted by admin]
13 février 2011 à 18:52 en réponse à : Copier les données d’un champ texte dans un champ en lecture seule. RÉSOLU #51417alexParticipantUne petite variante pour le fun et illustrer la gestion d’évènements dans Acrobat…
[attachment deleted by admin]
alexParticipantQuelques remarques:
1-Les différentes occurences du champ “uniteauto” embarqueront nécessairement la même valeur, c’est la raison pour laquelle mon script crée des champs de nom différents.
2-Comme le script doit créer des pages et des champs, il doit fonctionner dans un contexte privilégié, c’est à dire au niveau de l’application Acrobat (répertoire JavaScript), ou dans un document édité avec certificat. J’ai choisi un script d’application car c’est plus simple à comprendre.
3-Un autre solution différente de celle que je propose et reprenant une (très petite) partie de votre script, serait sans doute créer un batch qui incrémenterait les numéros et lancerait une impression (à plat) de billets page par page.
4-var a = rPage; ça c’est nouveau en JavaScript! Pour passer de la page en cours à la page suivante:
this.pageNum=this.pageNum+1;
5-Nbre de pages/Nbre de tickets:Le must serais de créer un champs où remplir le nombre de page désiré en fonction du nombre de ticket (mais ça… je ne sais pas faire, d’où l’intérêt de ce post)
C’est ce que fait la page PageMaster.pdf.
6-Dans ma maquette, on peut sans doute changer le numéro du ticket de départ,il faudrait le mettre en paramètre dans la PageMaster.pdf
7-Pour réduire la taille d’un fichier pdf afin de le joindre à un post, c’est simple et bien expliqué sur se site.Mon conseil: partez de ma maquette…
alexParticipantAssurez-vous du paramétrage des préférences pour l’exécution des scripts JavaScript.
Voir image jointe.[attachment deleted by admin]
-
AuteurRéponses