Toutes mes réponses sur les forums
-
AuteurRéponses
-
MerlinMaître des clésVers 2006/2007 un administrateur a dû changer mon pseudo en MagicPDF suite à un bug du forum de MacGé et depuis il est resté.
J'ai aussi reconnu ton pseudo, dès que j'ai reçu le message de confirmation d'inscription. :Smiley03:
MerlinMaître des clés(A ce propos es-tu MagicPDF, qui aidait les gens sur Macgénération dans le temps ?)
C'est bien moi, mais pourquoi « dans le temps » ? :geek:
MerlinMaître des clésCeci dit, on peut leur conseiller d'utiliser Acrobat Reader (ce que la plupart font déjà je pense).
Le « conseil » ça ne fonctionne pas très bien, je te conseille plutôt d'utiliser ce truc de la mort qui tue efficace à 100% :
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/forcer-utilisation-pdf-avec-acrobat-reader/Peux-tu me dire la marche à suivre pour aplatir à partir de Reader ?
Acrobat Reader ne permet pas d'aplatir les champs de formulaires.
Sur Windows il est toujours possible d'imprimer en PDF pour générer un nouveau PDF aplati mais ce n'est pas automatisable et ça ne fonctionne pas sur Mac.À ce stade je crois qu'il faudrait peut être penser à changer d'imprimeur (on n'est plus au XXe siècle), ça simplifierait beaucoup de choses. :Smiley15:
MerlinMaître des clésBonjour et bienvenue
Les champs de formulaire ne sont pas des objets comme les autres et ils ne supportent que le mode colorimétrique RVB.
Mais ils devraient s'imprimer…Il faudrait prévoir dans ton formulaire la possibilité d'aplatir les champs de formulaire pour intégrer leur contenu à la couche graphique, et il faudrait aussi prévoir la conversion en CMJN. Mais ce n'est possible qu'avec Acrobat Pro, pas avec Reader.
Donc il faut savoir de quel logiciel ton client est équipé.
(L'aplatissement peut fonctionner avec Acrobat Standard mais pas la conversion CMJN)25 septembre 2021 à 08:57 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69669
MerlinMaître des clésIl faut ajouter cette ligne :
var f = this.numPages
var pp = this.getPrintParams();
pp.printRange = 1,f -1;
pp.pageHandling = pp.constants.handling.fit; // ajuster au papier
this.print(pp);24 septembre 2021 à 09:26 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69666
MerlinMaître des clésScripts qu'on peut améliorer ainsi pour éviter que l'utilisateur soit invité à enregistrer le document s'il n'a pas fait de modication avant de l'imprimer :
// Document sera imprimé (document will print)
var bSale = this.dirty;
this.deletePages({nStart: this.numPages-1});
console.println(« Suppression de la page modèle pendant l'impression… »);// Document a été imprimé (document did print)
this.spawnPageFromTemplate({cTemplate: « pageModele »});
this.dirty = bSale;
console.println(« …puis réaffichage de la page. »);:geek:
À propos de « this.dirty » voir : https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/Doc_properties.htm?rhhlterm=dirty&rhsyns=%20#XREF_39186_dirty
24 septembre 2021 à 09:23 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69665
MerlinMaître des clésbebarth, merci pour l'exemple mais j'utiliserais les scripts autrement : placés en action « Document sera imprimé » et en action « Document a été imprimé ».
Ainsi il n'y a pas forcément besoin de bouton Imprimer et ça fonctionne quelle que soit la commande choisie par l'utilisateur (menu Fichier : Imprimer, raccourci-clavier, icône d'outil rapide…) pour imprimer.
:Smiley03:
// Document sera imprimé (document will print)
this.deletePages({nStart: this.numPages-1});
console.println(« Suppression de la page modèle pendant l'impression… »);// Document a été imprimé (document did print)
this.spawnPageFromTemplate({cTemplate: « pageModele »});
console.println(« …puis réaffichage de la page. »);24 septembre 2021 à 07:41 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69663
MerlinMaître des clésL'autre méthode, plus « brutale », c'est de recouvrir la page à ne pas imprimer avec un champ à fond blanc réglé pour être « invisible à l'écran et visible à l'impression ».
Ainsi ladite page ne s'imprime pas, mais ça ajoute une page blanche/vide lors de l'impression.
:Smiley03:24 septembre 2021 à 07:35 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69662
MerlinMaître des clésPas besoin de bidouiller, la solution est simple.
Il faut générer une page à partir du template et masquer le template.Cette page générée « non statique » peut donc être supprimée avant l'impression, et re-générée ensuite à partir du template masqué.
:Smiley15:
22 septembre 2021 à 13:19 en réponse à : Script d’impression se lance sur Acrobat Pro mais pas sur Acrobat Reader #69660
MerlinMaître des clésOui, Acrobat Reader ne peut pas afficher/masquer des Templates.
Par-contre il* peut générer (spawn) des pages à partir de Templates et il peut supprimer les pages ainsi générées (mais il peut pas supprimer les pages statiques).Bizarrement, Foxit Reader permet lui aussi de générer des pages à partir de Templates mais pas de supprimer les pages ainsi générées… :oh:
* (Acrobat Reader DC et Adobe Reader XI seulement, pas les versions antérieures)
MerlinMaître des clésbebarth, tu as complètement raison mais… Tu vas vite constater que dès que le champ est vidé ou réinitialisé il perd tous ses réglages RTF et revient aux valeurs par défaut.
Efface le texte dans ton document et essaie d'en saisir un autre.
Merci Adobe. :mur: :oh:
MerlinMaître des clésBonjour et bienvenue
J'avais écrit une réponse hier mais le forum s'est évaporé au moment de la poster, donc je recommence. :geek:
L'interlignage est ingérable dans un champ de formulaire PDF.
Mais ce n'est pas un drame car les formulaires numériques n'ont pas besoin de lignes ni de champs-peigne (précasés), je ne connais aucun type de champ de formulaire pouvant être rempli de travers ou en superposant les caractères.
Donc la solution est simple : attribuer un fond blanc aux champs text pour masquer les lignes et/ou les champs-peigne sous-jacents.Reste le cas du formulaire mixte papier/numérique, dans ce cas j'utilise deux scripts, un qui attribue un fond blanc au champ dès qu'il est activé, et un autre qui vérifie si le champ a été rempli quand il est désactivé.
Si le champ a été rempli il garde son fond blanc, sinon le script remet le fond transparent pour que ça puisse être rempli à la main.Donc en Action « Champ activé » (on Focus) je met ce script :
Code:event.target.fillColor = color.white ;Et en Action « champ désactivé » (on Blur) :
Code:if (event.value.toString().length > 0) {event.target.fillColor = color.white ;}
else {event.target.fillColor = color.transparent ;}Le script en Action « champ désactivé » peut fonctionner sans l'autre, mais dans ce cas le fond ne devient blanc que quand le champ est désactivé et que s'il a été rempli.
MerlinMaître des clés:bravo:
MerlinMaître des clésLa valeur du champ reste bloquée à la valeur précédente parce-que le script ci-dessus ne fonctionne pas.
Ce n'est pas la 1re fois que je me fais avoir : il ne faut pas mettre .value en variable quand on veut l'assigner, ça ne fonctionne qu'en lecture. :oh: :geek:
Par ailleurs j'ai aussi changé l'ordre des conditions, sinon dans certains cas certaines ne s'exécuteront pas.var f = this.getField(« Text8 »).value;
var g = this.getField(« Text9.0 »);if (f>11) {
(g.value = « – de 25 »);
}
else if (f<1) {
(g.value = « + de 30 »);
}
else if (f<6) {
(g.value = « 25 u00E0 30 »); // u00E0 = « à » en Unicode
}
else if (f<12) {
(g.value = « 25 »);
}
else {
g.value = « »;
}Exemple ci-joint (parce-que cette fois j'ai testé…).
MerlinMaître des clésSi c'est ça que tu appelles « un maximum de détails » je sens que ça va être laborieux… :Euuuh:
L'EPS est un format obsolète et périmé qu'il vaut mieux éviter d'utiliser.Peux-tu partager ton document ou un exemple ?
Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html
MerlinMaître des clésBonjour
La rubrique Support & Assistance ne concerne que les utilitaires (gratuit) fournis par le site abracadabraPDF, le reste se passe ici. :idee:
Ton script peut être amélioré ainsi :
– un peu d'Unicode pour la compatibilité, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/pdf-javascript-et-unicode/
– « else if » fait que le script s'arrêtera dès qu'il aura trouvé une concordance au lieu de continuer à tester toutes les conditions.
– le « else » final sert à gérer tous les autres cas indéterminés et à vider le champ texte, qui sinon conserverait la valeur précédente.
– pourquoi mettre un champ en variable et pas l'autre ? Pour le coup ça ne fait pas une grosse différence mais ça permet aux scripts de s'exécuter beaucoup plus vite et qui simplifie la maintenance.
var f = this.getField(« Text8 »).value;
var g = this.getField(« Text9.0 »).value;if (f>11) {
(g = « – de 25 »);
}
else if (f<12) {
(g = « 25 »);
}
else if (f<6) {
(g = « 25 u00E0 30″); // u00E0 = « à » en Unicode
}
else if (f<1) {
(g = « + de 30 »);
}
else {
g = « »;
}
Modif : voir ci-dessous.
MerlinMaître des clésAvec quel logiciel ?
Avec quelles options d'exportation ?
…Merci de donner un maximum de détails, je suis magicien, pas devin. :Smiley01:
MerlinMaître des clésMoi j'exporterais la nouvelle page du nouveau document et je la réimporterais dans l'ancien document, dans un premier temps avec ses champs de formulaire, et sans ses champs de formulaire si ça continue de bugger.
Rien n'empêche de travailler sur des templates existants, la petite case qui est en regard de chaque template sert à l'afficher/masquer.
MerlinMaître des clésBonjour et bienvenue
Comment fais tu pour enregistrer/exporter ton formulaire en JPEG ?
MerlinMaître des clésBonjour
Je les ai ouverts, quelque chose a foiré lors de la réalisation du nouveau document.
Moi je reprendrais l'ancien, et je recommencerais à partir de là.
:priere:13 septembre 2021 à 10:17 en réponse à : Extract Highlighted Text in a pdf file and export those text to a other pdf file #69604
MerlinMaître des clésI want both comments , highlighted text to be extracted.
So I repeat my question :
Rakesh Kumar, why can't you use the Acrobat Pro embedded tool « Create Comment Summary » ?
It look like we are trying to reinvent the wheel.
MerlinMaître des clésBonjour
Si le nombre de chiffres est fixe/toujours le même c'est typiquement un cas d'utilisation du Format : « Masque arbitraire », comme ceci : FACT-99999999999999999
Voir : http://abracadabrapdf.net/forum/index.php/topic,1301.msg5905.html#msg5905Sinon il faut utiliser du JavaScript avec un peu de GREP.
4 septembre 2021 à 07:34 en réponse à : Extract Highlighted Text in a pdf file and export those text to a other pdf file #69600
MerlinMaître des clésRakesh Kumar, why can’t you use the Acrobat Pro embedded tool « Create Comment Summary » ?
It look like we are trying to reinvent the wheel.
MerlinMaître des clésétant d’un niveau « amateur » je voulais savoir où créer le code qui génèrera plusieurs fichiers à l’issue d’un import de données en .txt.
– Tous les scripts JavaScript ?
– Scripts JavaScript du document ?
– Action du document ?Il faut que tu lises cet article : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/
MerlinMaître des clésBonjour et bienvenue
Oui c’est possible mais ça demande un bon niveau de connaissances en formulaire PDF et (surtout) en JavaScript.
Il ne s’agit pas juste d’ajouter quelques champs de formulaire sur un document, c’est un projet de développement.
MerlinMaître des clésBonjour et bienvenue
Ce sont des sujets déjà abordé dans ce forum.
Le mieux serait que tu commences par faire une recherche afin de dégrossir la problématique, ensuite n’hésites pas à revenir avec des questions si ça coince.2 septembre 2021 à 07:58 en réponse à : Extract Highlighted Text in a pdf file and export those text to a other pdf file #69593
MerlinMaître des clésDownload this attachment and install it.
It’s a version made for you.1 septembre 2021 à 20:31 en réponse à : Extract Highlighted Text in a pdf file and export those text to a other pdf file #69591
MerlinMaître des clésSave this script as a .js file and place it in your Acrobat’s JavaScripts folder.
1 septembre 2021 à 08:29 en réponse à : Extract Highlighted Text in a pdf file and export those text to a other pdf file #69586
MerlinMaître des clésHere is the script, I removed the « Reader only » condition.
Interesting things are beetween lines 55 and 90.Code:// abracadabraTools DC – Comments report – Lister les commentaires
//
if (app.viewerVariation == « Reader » && app.formsVersion > 9) {
if (app.language == « FRA ») {
var strRapComment00 = « Lister tous les commentaires du document dans la Console »; // tooltip bouton
var strRapComment01 = « Lister les commentaires… »; // menu
var strRapComment01b = « Commentaires liste »; // bouton
var strRapComment02 = « Choisir un mode de classement »;
// var strRapComment03 = « Aucun »;
var strRapComment04 = « Page »;
var strRapComment05 = « Auteur »;
var strRapComment06 = « Date »;
var strRapComment07 = « Type »;
var strRapComment08 = « LISTE DES COMMENTAIRES DU DOCUMENT : « ;
var strRapComment09 = « Aucun commentaire n’a u00E9tu00E9 du00E9tectu00E9 dans ce document »;
}
else {
var strRapComment00 = « Report all document comments in the Console »; // tooltip bouton
var strRapComment01 = « Comments Report… »; // menu
var strRapComment01b = « Comments Report »; // bouton
var strRapComment02 = « Select a sort type »;
// var strRapComment03 = « None »;
var strRapComment04 = « Page »;
var strRapComment05 = « Author »;
var strRapComment06 = « Date »;
var strRapComment07 = « Type »;
var strRapComment08 = « LIST OF COMMENTS FOR DOCUMENT: »;
var strRapComment09 = « No comments were detected in this document »;
}
}
//
////////////////////////////////////////////////////////////////////////////////////////////////////
//
if (app.formsVersion > 9) {
// ajout du menu
// si le menu abracadabraTools n’existe pas déjà
var strNomMenu = « abracadabraTools u002A »;
if (global.aTmenu != 1) {
app.addSubMenu({ cName: strNomMenu, cParent: « Edit », nPos: 0});
app.addMenuItem({ cName: « -« , cParent: « Edit », nPos: 0, cEnable: false, cExec:null});
global.aTmenu = 1;
}
app.addMenuItem({
cName: « Commentaires_rapport »,
cUser: strRapComment01,
cParent: strNomMenu,
cExec: « listeDesComments(this) »,
nPos: 0,
cEnable: « event.rc = app.doc; »
});
//
//
listeDesComments = app.trustedFunction (function (doc) {
var aClassement = [];
// Prompt the user for the sorting type
aClassement.push({cName: strRapComment02, bEnabled: false});
aClassement.push({cName: « -« });
// aClassement.push({cName: strRapComment03, cReturn: ANSB_None});
aClassement.push({cName: strRapComment04, cReturn: ANSB_Page});
aClassement.push({cName: strRapComment05, cReturn: ANSB_Author});
aClassement.push({cName: strRapComment06, cReturn: ANSB_ModDate});
aClassement.push({cName: strRapComment07, cReturn: ANSB_Type});
var nSortType = app.popUpMenuEx.apply(app, aClassement) || ANSB_None;
//
// Change to true to reverse the sort order
var bReverseOrder = false;
//
doc.syncAnnotScan();
var a = doc.getAnnots({nSortBy: nSortType, bReverse: bReverseOrder});
//
if (a) {
var msg = « Page %s par %s le %s »;
console.clear();
console.show();
console.println(strRapComment08 + this.documentFileName + « rrr »);
for (var i = 0; i < a.length; i++) {
console.println(util.printf(msg, 1 + a.page, a.author, util.printd(« yyyy/mm/dd HH:MM:ss », a.creationDate)));
console.println(a.contents + « rr »);
}
}
else {
console.clear();
console.show();
console.println(strRapComment08 + this.documentFileName + « ]rr »);
console.println(strRapComment09);
// app.alert({cMsg: crop13, cTitle: strTitreId, oCheckbox: oCase, nIcon: 2, nType: 2})
}
});
//
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// icône comments report
var strIconComReport = « ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffffffffffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffff »;
//
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// ajout du bouton
var oIconComReport = {count: 0, width: 20, height: 20, read: function(nBytes) {return strIconComReport.slice(this.count, this.count += nBytes);}};
var comReportBouton =
{cName: « Commentaires-rapport »,
cExec: « listeDesComments(this) »,
cEnable: « event.rc = event.target != null »,
cMarked: « event.rc = false »,
cTooltext: strRapComment00,
oIcon: oIconComReport,
cLabel: strRapComment01b};
//
try{app.removeToolButton(« comReport »);} catch(e){}
try{app.addToolButton(comReportBouton);} catch(e){}
//
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// menu Aide
// si le menu Aide abracadabraTools n’existe pas déjà
if (global.aTmenAide != 1) {
if (app.language == « FRA ») {
var strMenAide00 = « abracadabraTools »;
var strMenAide01 = « Support & assistance… »;
// var strMenAide02 = « Tu00E9lu00E9chargement »;
var strMenAide02 = « Actualisation… »;
var strMenAide03 = « https://www.abracadabrapdf.net/?p=111 »;
var strMenAide04 = « Site web »;
var strMenAide05 = « https://www.abracadabrapdf.net/ »;
}
else {
var strMenAide00 = « abracadabraTools »;
var strMenAide01 = « Support & Assistance… »;
var strMenAide02 = « Check for update… »;
var strMenAide03 = « https://www.abracadabrapdf.net/?p=972 »;
var strMenAide04 = « Web Site »;
var strMenAide05 = « https://www.abracadabrapdf.net/?p=1591 »;
}
// AJOUT DU MENU
app.addMenuItem({ cName: « -« , cParent: « Help », nPos: 21, cEnable: false, cExec:null});
app.addSubMenu({ cName: strMenAide00, cParent: « Help », nPos: 22});
app.addMenuItem({ cName: strMenAide04, cParent: strMenAide00, nPos: 0, cExec: « app.launchURL(strMenAide05); »,});
app.addMenuItem({ cName: strMenAide02, cParent: strMenAide00, nPos: 1, cExec: « app.launchURL(strMenAide03); »,});
app.addMenuItem({ cName: strMenAide01, cParent: strMenAide00, nPos: 2, cExec: « app.launchURL(‘https://abracadabrapdf.net/forum/’); »,});
//
// altération de la variable
global.aTmenAide = 1;
}
//
////////////////////////////////////////////////////////////////////////////////////////////////////
//
}
//
////////////////////////////////////////////////////////////////////////////////////////////////////31 août 2021 à 13:26 en réponse à : Extract Highlighted Text in a pdf file and export those text to a other pdf file #69580
MerlinMaître des clésYou should try the COMMENTS REPORT plugin which is part of the free abracadabraTools :
https://www.abracadabrapdf.net/utilitaires/utilities-in-english/abracadabratools_en/It can be customized (I can give you the source JS file) to works with Acrobat Pro, so comments will be exported as a new « Report », which is a regular PDF file.
See:
https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/Report.htm?rhhlterm=report&rhsyns=%20
&
https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/Report_methods.htm?rhhlterm=report&rhsyns=%2031 août 2021 à 13:18 en réponse à : AEM Form (Livecycle Form) Set the value of a repeatable Dropdown to another Drop #69572
MerlinMaître des clésradzmar is a well known XFA/Designer’s guru.
:extra:
MerlinMaître des clés:bonjour:
27 août 2021 à 14:14 en réponse à : Importer une ou des pièces jointes à la suite du document PDF #69562
MerlinMaître des clésIl y a deux approches, soit les placer en fonction de leur ordre d’arrivée (donné par la variable j), soit les placer sous le bouton cliqué (ce qui est déjà le cas) en modifiant le décalage par rapport aux coordonnées du bouton.
27 août 2021 à 07:50 en réponse à : Importer une ou des pièces jointes à la suite du document PDF #69560
MerlinMaître des clésMoi je trouve que ça fonctionne plutôt bien, j’en ai même profité pour modifier la première ligne du script de façon à avoir exactement le même script dans chaque bouton.
Exemple ci-joint.
:Smiley03:26 août 2021 à 12:38 en réponse à : Importer une ou des pièces jointes à la suite du document PDF #69558
MerlinMaître des clésSupprime cette ligne dans les scripts des boutons, c’est elle qui déplace les icônes des PJ déjà importées :
Code:annots.point =[aRect[0]-1*(j), aRect[1]-15];26 août 2021 à 08:37 en réponse à : Importer une ou des pièces jointes à la suite du document PDF #69556
MerlinMaître des clésLes boutons appellent toutes les pj du doc, meme celles qui déjà ont été mises avant
Je ne comprend pas cette phrase. :Euuuh:
Peut-on paramétrer, sur 2 boutons différents, l’import de PJ à 2 ou plusieurs endroits différents du formulaire ?
Oui, en utilisant un script différent dans chaque bouton, la différence étant les coordonnées de placement des PJ.
C’est à dire la ligne : point: [400,500],
MerlinMaître des clésBonjour et bienvenue
C’est la première fois que je vois ça. :Euuuh:
Le formulaire fonctionne correctement avec Acrobat et Foxit Reader, ce qui tendrait à vérifier une fois de plus que Edge, Chrome, etc. ne respectent pas toutes les spécifications du format PDF (alias norme ISO 32000) et qu’ils sont avant tout des navigateurs web.La bonne nouvelle c’est que ce n’est pas très pénalisant, la mauvaise nouvelle c’est que je ne vois pas du tout quoi faire…
En attendant que Microsoft et Googol corrigent les bugs de leurs logiciels tu peux toujours utiliser ce truc de la mort qui tue pour forcer l’ouverture de ton formulaire dans un « vrai » logiciel lecteur de PDF (Acrobat, Foxit…) :
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/forcer-utilisation-pdf-avec-acrobat-reader/
MerlinMaître des clésJe ne connais pas PDF Expert, ça fait des années que je ne l’ai pas ouvert.
À l’époque c’était une bouse qui s’appuyait sur les PDF Services d’Apple, qui n’existait que sur Mac et qui n’offrait rien de plus qu’Aperçu.25 août 2021 à 10:07 en réponse à : Importer une ou des pièces jointes à la suite du document PDF #69554
MerlinMaître des clésToutes les réponses à tes questions se trouvent dans le (long) sujet dont j’ai posté l’URL ci-dessus, avec des exemples à télécharger :geek:
https://abracadabrapdf.net/forum/index.php/topic,3476.html25 août 2021 à 10:00 en réponse à : AEM Form (Livecycle Form) Set the value of a repeatable Dropdown to another Drop #69570
MerlinMaître des clésAugust is vacation time, you should try again in September
23 août 2021 à 13:15 en réponse à : AEM Form (Livecycle Form) Set the value of a repeatable Dropdown to another Drop #69568
MerlinMaître des clésI don’t believe there are active members of this forum yet who are familiar with AEM/Designer or XFA-PDF.
Do not be surprised if this subject remains unanswered.
:joker:23 août 2021 à 09:32 en réponse à : AEM Form (Livecycle Form) Set the value of a repeatable Dropdown to another Drop #69565
MerlinMaître des clésBonjour
AEM Form is not Acrobat and XFA-PDF are not real PDFs.
So I must refer you to this forum dedicated to AEM Form:
https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/ct-p/adobe-experience-manager-community21 août 2021 à 09:30 en réponse à : Importer une ou des pièces jointes à la suite du document PDF #69552
MerlinMaître des clésLes utilisateurs du formulaires doivent pouvoir attacher des pièces jointes à la suite de la première page, qui elle ne bouge pas.
Ce n’est pas possible avec Acrobat Reader.
Dans ton formulaire tu as astucieusement créé des pages modèles qui permettent d’importer des images (pages PDF) dans des boutons-champs image mais tu vas te heurter à plusieurs limites :
– l’utilisateur devra importer son document page par page, sans se tromper dans l’ordre…
– si le document de l’utilisateur contient 10 pages et pèse 2 Mo cela reviendra à importer : 10 X 2 Mo = 20 Mo dans le formulaire.
– il est impossible de récupérer ou d’exporter les documents placés en tant qu’image dans un bouton-champ image !Je crois qu’il va falloir changer ton fusil d’épaule et proposer à l’utilisateur d’utiliser l’outil de commentaires « Pièce jointe » qui est justement fait pour ça.
Ça ajoute le document importé dans le panneau des pièces jointes et non pas à la suite des pages du formulaire, mais c’est tellement plus user-friendly.Tuto complet et exemple ici : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/importer-programmatiquement-une-piece-jointe-dans-un-pdf/
Voir aussi ce sujet qui complète le tuto : https://abracadabrapdf.net/forum/index.php?topic=3476
20 août 2021 à 08:09 en réponse à : Importer une ou des pièces jointes à la suite du document PDF #69549
MerlinMaître des clésBonjour
La génération (spawn) de modèles (templates) ne peut se faire que page par page.
S’il y en a plusieurs à générer en même temps l’astuce c’est de commencer par la dernière.
:Smiley03:
MerlinMaître des clésA priori la raison est simple : lesdits élèves n’utilisent pas Acrobat Reader (ou Foxit Reader) et préfèrent le lecteur par défaut* (Edge, Aperçu…) qui ne reconnait pas les pièces jointes et plein d’autres fonctionnalités du format PDF 1.7, alias norme ISO 32000.
Explication complète ici : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/forcer-utilisation-pdf-avec-acrobat-reader/* « Défaut » étant effectivement le mot qui convient le mieux dans ce cas :Smiley03:
MerlinMaître des clésUne virgule vous manque et rien ne va plus :geek:
var dependentListBoxFieldName = « ListeFille »;
var dependentListValues =
{
« Clés »: [
[« PG », « export C1 »],
[« PP », « export C2 »],
[« CBI », « export C3 »],
[« PAC », « export C4 »],
[« A(à préciser) », « export C5 »],
],
« Badges »: [
[« CA », « export B1 »],
[« Ca », « export B2 »],
[« Co », « export B3 »],
[« A(àpréciser) », « export B4 »],
],
« Matériels »: [
[« Tel », « export Ma1 »],
[« Ord », « export Ma2 »],
[« Ta », « export Ma3 »],
[« Im », « export Ma4 »],
[« EV », « export Ma5 »],
[« VP », « export Ma6 »],
[« RS », « export Ma7 »],
[« C(à préciser) », « export Ma8 »],
[« Autre (àpréciser) », « export Ma9 »],
],
« Mobiliers »: [
[« Ves », « export Mo1 »],
[« Bu/Ta », « export Mo2 »],
[« AH », « export Mo3 »],
[« AB », « export Mo4 »],
[« A(à préciser) », « export Mo5 »],
[« A( à préciser) », « export Mo6 »],
], // <-- la virgule manquante est ici
« Locaux »: [
[« Bu », « export Lo1 »],
[« Ves », « export Lo2 »],
[« Re/St », « export Lo3 »],
[« Ac/De », « export Lo4 »],
[« A( à préciser) », « export Lo5 »],
]
};
/*
You probably don’t need to change anything from here down
*/
if ((event.target.type == « combobox » && event.name == « Format ») || (event.target.type == « listbox » && event.name == « Keystroke »)) {
if (event.target.type == « combobox ») {
if (dependentListValues.hasOwnProperty(event.target.value)) {
this.getField(dependentListBoxFieldName).setItems(dependentListValues[event.target.value]);
}
else {
this.getField(dependentListBoxFieldName).clearItems();
}
}
if (event.target.type == « listbox » && dependentListValues.hasOwnProperty(event.changeEx)) {
this.getField(dependentListBoxFieldName).setItems(dependentListValues[event.changeEx]);
}
}
else {
app.alert(« This script was not intended for this field type or event. »);
}
MerlinMaître des clésBonjour
ajouter un fichier java script, c’est comme ajouter un module sur acrobat? :Euuuh:
Oui mais pas seulement.
Cet article est une réponse complète à ta question : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/
MerlinMaître des clésBonjour et bienvenue
Souvent la bonne réponse vient de l’abandon de la « mauvaise » question : Acrobat Pro est toujours disponible en licence perpétuelle, rien n’oblige à s’abonner. :Smiley03:
https://helpx.adobe.com/fr/download-install/kb/acrobat-2020-downloads.htmlSinon cet article liste un certain nombre de logiciels équivalents à Acrobat, la plupart sont disponibles en version d’essai :
https://www.abracadabrapdf.net/ressources-et-tutos/pdf-mac/lecteurs-pdf-mac/Je te déconseille Foxit Phantom PDF Editor, en version Mac c’est une bouse (contrairement à la version Windows).
Sinon, j’ai une tendresse particulière pour PDF Studio, qui existe en version française.
MerlinMaître des clésAvec Scribus, comme avec Acrobat tu double-cliques sur le champs pour afficher les propriétés et tu trouves le script.
Oui et non.
Scribus ne permet d’éditer que des documents Scribus, pas des PDF.
Donc Grem ne peut pas voir ce qu’il y a dans les exemples, ni avec Acrobat Reader ni avec Scribus.
MerlinMaître des clésBonjour et bienvenue
Il y a plusieurs possibilités : afficher/masquer un champ, afficher/masquer un calque, afficher/masquer une infobulle, afficher un message dans une boite d’alerte.
Je ne connais pas toutes les possibilités de LibreOffice mais je sais que c’est faisable avec le logiciel libre Scribus : https://www.scribus.net/
MerlinMaître des clésBonjour
Pour passer à un niveau supérieur… qui vient de se présenter à moi… et si c’est un menu déroulant ?
Ça vaut pour tous les types de champs, sauf les champs de signature.
MerlinMaître des clésCe n’est pas « une fonction d’Acrobat », c’est une propriété du format PDF qui est ignorée par les logiciels lecteurs de PDF bas-de-gamme.
On trouve aussi les pièces jointes dans Foxit et autres logiciels sérieux.
:idee:
MerlinMaître des clésBonjour
Tout est dans le PDF que vous avez téléchargé.
Le secret c’est qu’il faut ouvrir ce PDF avec Acrobat (Reader ou Pro), et non pas avec Aperçu ou avec Edge.
:idee:
MerlinMaître des clésWaou !
Chapeau bas.:bravo: :bonjour:
MerlinMaître des clésNe serait il pas possible que :
si le document n’est pas signé ; lors de la fermeture de celui-ci, la mention Lu et approuvé soit effacéeBonne idée, je n’ai pas trouvé mieux.
MerlinMaître des clésSi c’est le juridique qui le veut no problemo.
Exemple ci-joint : le script de validation est dans le champ texte
MerlinMaître des clésBonjour
Oui c’est facile à faire avec un peu de JavaScript, mais en fait tu veux plaquer un processus papier sur un processus numérique : en effet, lors d’une signature numérique le document est forcément lu et approuvé, surtout si on a prévu un petit parcours à base de coches le long du document.
Donc il n’est pas nécessaire d’y ajouter cette mention.Mais si tu y tiens vraiment il faudrait que tu partages ton document, ou un exemple.
15 juillet 2021 à 08:10 en réponse à : Compter des lignes dans un champ multignes sans caractères de retour à la ligne #69415
MerlinMaître des clésWaou !
:bravo:12 juillet 2021 à 17:32 en réponse à : Compter des lignes dans un champ multignes sans caractères de retour à la ligne #69413
MerlinMaître des clésLe document ci-joint devrait t’intéresser, c’est un modèle de fax à deux pages.
Quand la saisie déborde du premier champ sur la première page le texte passe automatiquement dans la deuxième.
Même chose si on copie-colle un texte trop long, la partie débordante est placée dans la deuxième page.11 juillet 2021 à 08:28 en réponse à : Compter des lignes dans un champ multignes sans caractères de retour à la ligne #69411
MerlinMaître des clésOn pourrait peut être inverser la problématique.
Je ne sais pas pourquoi tu veux savoir si le contenu d’un champ texte « déborde », mais si tu interdisais le débordement des champs tu n’aurais pas ce problème…
:idee:
MerlinMaître des clésBonjour
Dans un champ de type Bouton on peut importer une image (le trait orange) et il y a les options nécessaires pour que l’image (le trait) s’agrandisse/se réduise en fonction de la taille du bouton.
On peut placer un champ de formulaire par-dessus un autre.
MerlinMaître des clésSi bien sur, tu as la propriété intellectuelle du script.
Il faut voir ça comme un roman ou un article, tu en es l’auteur, tu en as les droits et tout le monde peut le lire.La différence c’est qu’on peut publier nos scripts sans mise en page, sans espace, sans ponctuation, etc. en les minifiant.
On peut aussi les noyer dans un flot de fonctions redondantes ou inutiles. :geek:L’idée c’est de rendre la copie ou la réutilisation du script plus compliquée qu’une création ex nihilo.
L’expérience montre que même s’il est soigneusement commenté et avec des variables bien nommées il est toujours difficile de reprendre un script (complexe) qu’on n’a pas créé, alors reprendre un script « unminified » (déminifié) brut de décoffrage… Bon courage ! :mur:
MerlinMaître des clésSinon, pour répondre à ton interrogation le moyen de plus souple que j’ai trouvé pour protéger mes scripts c’est de les « minifier », c’est-à-dire de les réduire juste à ce dont la machine à besoin.
https://www.it-connect.fr/quest-ce-que-la-minification/
https://javascript-minifier.com/
https://jscompress.com/On peut aussi « obfusquer » les scripts, c’est-à-dire minifier + rendre difficile à lire (ce n’est pas du chiffrage), mais l’inconvénient c’est que la plupart des antivirus et antispams rejettent les PDF dont les scripts sont obfusqués, puisqu’ils ne peuvent pas lire les scripts et qu’ils sont justement faits pour éviter les scripts malicieux.
MerlinMaître des clésLes formulaires PDF-XFA ne sont pas des documents PDF, ils utilisent un format propriétaire basé sur XML qui a été encapsulé dans une coquille PDF quand la société créatrice a été rachetée par Adobe dans les années 90.
Ces formulaires sont pleinement éditables avec Designer et pas du tout avec Acrobat, mais c’est une question de format, pas de protection.
MerlinMaître des clésEn fait Adobe appelle ça des « Restrictions d’utilisation », ce n’est pas vraiment une protection, c’est plutôt fait pour éviter les manipulations malencontreuses ou hasardeuses.
Contrairement au « mot de passe à l’ouverture » qui est une vraie protection (comme la protection par Certificat).
MerlinMaître des clésÇa ne protège que contre les grand-mères et ceux qui ne savent pas utiliser Googol, il existe des dizaines de sites et d’utilitaires comme celui-ci :
https://smallpdf.com/fr/unlock-pdf:geek:
MerlinMaître des clésBonjour
Oui, ça serait sympa de partager le truc parce-que ça fait plus d’une décennie que je cherche comment faire.
MerlinMaître des clésBonjour
L’exemple ( http://practicalpdf.com/acrobat-javascript-examples/dependentLists.pdf ) fourni sur la page que tu cites me parait simple à adapter, il te suffit de copier-coller les deux listes déroulantes et d’adapter le script, qui se trouve dans le champ « masterDropdown ».
Pour la duplication c’est à peine plus compliqué, il faut dans le script adapter le nom du champ cible (dependentDropdown.1, dependentDropdown.2, dependentDropdown.3, etc).
30 juin 2021 à 21:54 en réponse à : Compter des lignes dans un champ multignes sans caractères de retour à la ligne #69406
MerlinMaître des clésBonjour
Je crois que l’utilisation de l’évènement fieldFull est ta seule planche de salut :
https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/event_properties.htm?rhhlterm=fieldFull&rhsyns=%20#XREF_98939_fieldFullIl y a deux exemples intéressants.
MerlinMaître des clésBonjour
Je crois savoir que jctremblay fait de gros formulaires alors méfiance avec les scripts de calculs qui sont pénalisant en terme de performance quand il y en a beaucoup.
(Tous les scripts de calcul sont exécutés à chaque clic de l’utilisateur).
MerlinMaître des clésC’est moi qui me suis emmelé dans mon explication, et je n’aurais pas dû parler de « widget » (je l’ai supprimé ci-dessus).
En fait ce qui n’est pas possible c’est ça :
(this.getField(« repOp1« ).value) = « ? »;
…
(this.getField(« repOp1.1« ).value) = « ? »;S’il existe un champ nommé « repOp1.1 » il ne peut pas y avoir dans le document un autre champ nommé « repOp1 » car du coup ce nom est utilisé par le « champ parent virtuel », qui existe en tant qu’objet JavaScript mais pas sur une page.
Donc la première de ces deux lignes devrait ne pas fonctionner et renvoyer une erreur dans la console.Du coup je suppose que c’est peut être le même problème qui se pose pour le champ « repOp2 » puisque dans le script il n’y a pas cette ligne :
(this.getField(« repOp2.1« ).value) = « ? »;
MerlinMaître des clésOn peut s’adresser au champ parent (repOp1) pour modifier certaines propriétés de tous les champs du groupe en même temps, par exemple la police ou la couleur.
Mais ça ne fonctionne pas avec « value », il faut s’adresser à chaque champ enfant en particulier.
MerlinMaître des clésBonjour
Cette ligne :
this.getField(« repOp1 »).value = « ? »;Ne peut pas s’exécuter s’il existe un champ nommé repOp1.1
Et je suppose qu’il en va de même pour :
this.getField(« repOp2 »).value = « ? »;Mais pour en dire plus il faudrait voir ton document, ou un extrait.
Utilises tu la console JS pour voir les erreurs ?
MerlinMaître des clésBonjour
I would have liked to find books in French on javascript for pdf forms but this kind of book does not exist, so I have no other choice to learn javascript for pdf than to do it in English …
You should start here: https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/ressources-pdf-javascript/
MerlinMaître des clésSinon tu as ce post qui a traité le sujet :
Ta mémoire m’épate !
MerlinMaître des clés:bonjour:
En effet je voulais faire une sorte de variable globale qui totalisait les coches et une sorte de fonction globale. Comme en programmation MVC.
Mais là en fait tu refais faire le calcul à chaque clic sur une case.Ça se joue à quelques millisecondes près. :Smiley03:
MerlinMaître des clésBonjour
Peut être en exportant la valeur 1 pour chaque case cochée puis un script verrouille en écriture chaque checkbox (this.getField(« nom_de_ta_checkbox »).readOnly=true) si la somme des valeurs exportées = 5
J’ai repris l’idée : quand le compte arrive à plus que 5, la dernière case cliquée se décoche immédiatement et affiche une alerte (facultative).
Les cases ont toutes le même script (commenté et avec affichage du total dans la Console), qu’on pourrait mettre en fonction.
Ci-joint.
MerlinMaître des clésOui, un script non protégé s’arrête de fonctionner dès qu’il rencontre une erreur.
C’est ce qui t’es arrivé avec le script que tu as posté : le compte de la boucle for commençait à zéro mais il n’y a pas de champ « c0 », donc le script s’arrête là.Si tu avais activé la Console JS tu aurais vu le message d’erreur. Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/
MerlinMaître des clésSi tu ne veux pas que le script cesse de fonctionner quand il rencontre un nom de champ qui n’existe pas il faut lui ajouter une protection :
for (var i = 1; i < 8; i++) {
if (this.getField(« c » +i ) != null) {
this.getField(« c » +i ).display = display.visible;
}
}
MerlinMaître des clésSeul bebarth peut te répondre :joker:
Ce qui ne devrait pas tarder… :priere:
MerlinMaître des clésBonjour et bienvenue
As tu vu ce sujet ? :
https://abracadabrapdf.net/forum/index.php/topic,3410.msg24600.html
MerlinMaître des clésLes champs sont nommés : c1 à c7
Mais la boucle commence à zéro… :tutut:Par ailleurs, il me semble bien qu’il ne faut pas utiliser d’opérateur double ( <= ) dans les boucles for
Essaie plutôt ça :
for (var i = 1; i < 8; i++) {
this.getField(« c » +i ).display = display.visible;
}
MerlinMaître des clésBonjour
La différence c’est :
if (cSaisie = 1024) {
if (cSaisie == code) {= signifie « devient égal à »,
== signifie « est égal à ».
MerlinMaître des clésBonjour
Comme il est indiqué sur la page où tu l’as téléchargée cette calculatrice est un document exemple fourni avec Acrobat 5 et je n’ai fait qu’en modifier l’aspect des champs* tout en faisant bien attention de ne pas toucher aux scripts.
Donc je ne peux pas vraiment t’aider sinon en te suggérant une autre méthode pour la placer dans un document existant : utilise la fonction « Insérer une page » et importe le fichier Calculatrice, ainsi tu devrais pouvoir la copier-coller ailleurs dans le document et ensuite pouvoir supprimer la page importée, sans nuire à son fonctionnement.
Cette méthode à l’avantage d’importer TOUS les scripts du document cible, pas seulement ceux qui sont dans les pages.
:Smiley03:* Parce-que l’originale était vraiment trop moche… :tutut:
MerlinMaître des clésAs tu essayé avec des calques ?
Aujourd’hui c’est réponse que je donnerais à la question originelle de ce sujet.
MerlinMaître des clésJoli déterrage !
:geek:9 juin 2021 à 08:42 en réponse à : Pourriez vous m’aider paramétrer le PDF et avec le fichier Excel un G.merci !! #69343
MerlinMaître des clésRemercie surtout bebarth, hier j’étais pris toute la journée et surtout, je n’avais pas bien compris ce que tu voulais faire !
7 juin 2021 à 20:54 en réponse à : Pourriez vous m’aider paramétrer le PDF et avec le fichier Excel un G.merci !! #69338
MerlinMaître des clésBonjour et bienvenue
C’est un sujet récurrent plusieurs fois abordé dans ce forum.
Hélas ce forum ne permet pas de donner un lien vers un résultat de recherche, alors il va falloir que tu recherches toi-même, utilise le bouton « Rechercher » ci-dessus avec les mots-clés : importation, data, CSV, excel…Une fois que tu auras tout ingéré, n’hésites pas à revenir poser une question s’il y a un blocage.
:Smiley15:
MerlinMaître des clés«Je vais me coucher moins niaiseux !» Espression très québécoise.
C’est toujours plus fleuri que l’expression française : « Je me coucherai moins con ce soir »
:Smiley03:4 juin 2021 à 14:38 en réponse à : Problème de sélection et fonctionnement des champs de calcul sur un formulaire #68986
MerlinMaître des clésAs tu créé les champs de formulaire dans InDesign ou dans Acrobat Pro ?
Si dans Acrobat Pro : as tu utilisé la détection-création automatique des champs ?En tout cas je serais curieux de voir le fichier INDD, si tu pouvais me le faire passer (avec les polices, mais pas besoin des images).
MerlinMaître des clésSur Android les meilleures apps pour exploiter des formulaires PDF sont Acrobat Mobile, qPDF Reader et ezPDF Reader.
MerlinMaître des clésQuelle app utilises tu sur Android ?
Acrobat Mobile ou autre ?
MerlinMaître des clésBonjour et bienvenue
Voilà presque le même script, le orange n’existe pas en « couleur nommée » c’est pourquoi il faut le déclarer en utilisant des valeurs RVB :
Code:var cSaisie = event.value;
var oChampB = this.getField("B");if (cSaisie >= 0 && cSaisie <= 4.4) {
oChampB.value = "Normal";
oChampB.fillColor = color.green;
}
else if(cSaisie >= 4.5 && cSaisie <= 7) {
oChampB.value = "Alerte";
oChampB.fillColor = ["RGB", 255/255, 128/255, 0/255]; // orange
}
else if(cSaisie >= 7.1 && cSaisie <= 50) {
oChampB.value = "Danger";
oChampB.fillColor = color.red;
}2 juin 2021 à 17:59 en réponse à : Problème de sélection et fonctionnement des champs de calcul sur un formulaire #68976
MerlinMaître des clésJ’ai trouvé le champ et le script coupable (voir capture), et j’ai l’explication : https://community.adobe.com/t5/acrobat/ghost-javascript/td-p/11751827 (il y a un bouton « Traduire » sous chaque message)
Mais je n’ai pas trouvé la solution : après avoir supprimé le champ coupable (et ses frères), recréé un champ tout neuf et remis une addition en notation simplifiée, le problème recommence (message d’erreur) et le script coupable réapparait.
Alors qu’il n’y a aucun champ ni rien d’autre dans ce document dont le nom commence par « AF » ou qui le contienne.
:Euuuh: :doute: :mur:Je me demande si tous les champs ne devraient pas être au format « Nombre » mais là je n’ai pas le temps d’essayer. :joker:
1 juin 2021 à 11:33 en réponse à : Problème de sélection et fonctionnement des champs de calcul sur un formulaire #68970
MerlinMaître des clésJe suis sur Windows et je n’ai jamais vu ça.
Dans les deux cas (calcul ou notation simplifiée) la console retourne systématiquement :
SyntaxError: identifier starts immediately after numeric literalNormalement ce message est retourné quand on utilise un « identifier » (variable, fonction…) dont le nom commence par un chiffre, ce qui est interdit en JavaScript (calcul et notation simplifiée sont traduits en JavaScript à la volée pour pouvoir être exécutés. Le format PDF ne comprend rien d’autre que JavaScript).
Mais normalement ça ne concerne pas les noms des champs de formulaire, ce qui semble être le cas ici car il n’y a ni variable ni fonction.
J’ai supprimé tous les champs et je les ai recréées avec la détection automatique d’Acrobat Pro : c’est toujours même problème avec la notation simplifiée mais le calcul semble fonctionner…
Quand je crée un nouveau PDF et que j’y ajoute des champs dont les noms commencent par des chiffres je n’ai pas ce problème, tout fonctionne comme attendu…
J’en perds mon LatinScript… :geek: :Euuuh:
Je n’ai pas le temps d’aller plus loin aujourd’hui mais je vois plusieurs solutions :
– renommer les champs en ajoutant un préfixe (on peut utiliser les tirets _ ou – ),
– exporter en PDF sans les champs de InDesign et les créer avec Acrobat Pro,
– utiliser JavaScript pour les calculs (non testé),
– …31 mai 2021 à 17:14 en réponse à : Problème de sélection et fonctionnement des champs de calcul sur un formulaire #68963
MerlinMaître des clésBonjour et bienvenue
=>la fenêtre avec tous les champs listés s’ouvre, je sélectionne mes choix, MAIS quand je valide les champs sélectionnés, ils n’apparaissent pas dans la fenêtre de calcul !
C’est un bug connu de la version Mac, je ne sais pas comment on le contourne.
Par-contre c’est la première fois que j’entends dire que la notation simplifiée ne fonctionne pas, peux tu partager tout ou partie de ton document et/ou des captures d’écrans ?
(Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html )
MerlinMaître des clésJ’ai trouvé ça : https://abracadabrapdf.net/forum/index.php/topic,3702.msg22840.html
MerlinMaître des clésToutes les meilleures références concernant JavaScript sont ici :
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/ressources-pdf-javascript/Mais il va falloir copiner avec Googol Traduction car il n’y a rien en français.
:geek:28 mai 2021 à 17:09 en réponse à : Formulaire valeur indiquée ne correspond pas au format du champ #69296
MerlinMaître des clésOui effectivement, j’avais déjà lu des articles comme quoi le % était merdique.
C’était moi l’auteur ? :Smiley08:
Je me suis mis en nombre et mon résultat est 0.67. Je ne comprends pas pourquoi je n’ai pas 0.50
Tu parles d’un formulaire sur lequel tu travailles et que tu connais bien, mais pas moi.
Où vient ce résultat ?
De quels champs dépend-il ?
Quelle est la formule de calcul utilisée ?Je le place où ce script ?
Capture ci-joint.
Il faut absolument que tu lises cet article : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/ -
AuteurRéponses
