Toutes mes réponses sur les forums
-
AuteurRéponses
-
Merlin
Maî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 #69600Merlin
Maî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.Merlin
Maî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/
Merlin
Maî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.Merlin
Maî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 #69593Merlin
Maî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 #69591Merlin
Maî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 #69586Merlin
Maî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 #69580Merlin
Maî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 #69572Merlin
Maître des clésradzmar is a well known XFA/Designer’s guru.
:extra:Merlin
Maî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 #69562Merlin
Maî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 #69560Merlin
Maî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 #69558Merlin
Maî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 #69556Merlin
Maî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],Merlin
Maî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/Merlin
Maî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 #69554Merlin
Maî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 #69570Merlin
Maî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 #69568Merlin
Maî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 #69565Merlin
Maî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 #69552Merlin
Maî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=347620 août 2021 à 08:09 en réponse à : Importer une ou des pièces jointes à la suite du document PDF #69549Merlin
Maî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:Merlin
Maî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:
Merlin
Maî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. »);
}Merlin
Maî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/Merlin
Maî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.Merlin
Maî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.Merlin
Maî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/Merlin
Maî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.
Merlin
Maî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:Merlin
Maî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:Merlin
Maître des clésWaou !
Chapeau bas.:bravo: :bonjour:
Merlin
Maî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.
Merlin
Maître des clésSi c’est le juridique qui le veut no problemo.
Exemple ci-joint : le script de validation est dans le champ texteMerlin
Maî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 #69415Merlin
Maî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 #69413Merlin
Maî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 #69411Merlin
Maî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:Merlin
Maî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.Merlin
Maî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:Merlin
Maî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.
Merlin
Maî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.
Merlin
Maî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).
Merlin
Maî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:
Merlin
Maî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.
Merlin
Maî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 #69406Merlin
Maî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.
Merlin
Maî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).Merlin
Maî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) = « ? »;Merlin
Maî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.Merlin
Maî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 ?Merlin
Maî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/
Merlin
Maître des clésSinon tu as ce post qui a traité le sujet :
Ta mémoire m’épate !
Merlin
Maî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:
Merlin
Maî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.Merlin
Maî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/
Merlin
Maî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;
}
}Merlin
Maître des clésSeul bebarth peut te répondre :joker:
Ce qui ne devrait pas tarder… :priere:
Merlin
Maître des clésBonjour et bienvenue
As tu vu ce sujet ? :
https://abracadabrapdf.net/forum/index.php/topic,3410.msg24600.htmlMerlin
Maî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;
}Merlin
Maître des clésBonjour
La différence c’est :
if (cSaisie = 1024) {
if (cSaisie == code) {= signifie « devient égal à »,
== signifie « est égal à ».Merlin
Maî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:
Merlin
Maître des clésAs tu essayé avec des calques ?
Aujourd’hui c’est réponse que je donnerais à la question originelle de ce sujet.Merlin
Maî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 !! #69343Merlin
Maî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 !! #69338Merlin
Maî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:Merlin
Maî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 #68986Merlin
Maî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).
Merlin
Maître des clésSur Android les meilleures apps pour exploiter des formulaires PDF sont Acrobat Mobile, qPDF Reader et ezPDF Reader.
Merlin
Maître des clésQuelle app utilises tu sur Android ?
Acrobat Mobile ou autre ?Merlin
Maî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 #68976Merlin
Maî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 #68970Merlin
Maî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 #68963Merlin
Maî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 )Merlin
Maître des clésJ’ai trouvé ça : https://abracadabrapdf.net/forum/index.php/topic,3702.msg22840.html
Merlin
Maî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 #69296Merlin
Maî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/28 mai 2021 à 13:12 en réponse à : Formulaire valeur indiquée ne correspond pas au format du champ #69294Merlin
Maître des clésJe n’utilise jamais le format pourcentage, c’est merdique.
Je préfère utiliser un calcul « normal » dans un champ au format Nombre.
Le symbole % étant ajouté soit sur le fond de page, soit avec ce script de Validation :event.value = event.value + « % »;
Merlin
Maître des clésBonsoir, j’espère ne pas être trop pénible avec mes questions, mais je voulais savoir pourquoi ce script :
if (this.getField(« b1 »).isBoxChecked(0)) {
this.getField(« aa1 »).display = display.visible;
}
else {this.getField(« aa1 »).display = display.hidden;
}fonctionne correctement avec une seule checkbox b1 mais pas avec les autres ?
C’est à cause du zéro (en rouge ci-dessus), c’est lui qui indique à quelle case à cocher tu t’adresses, chacune à son numéro d’ordre comme on peut le voir dans la liste du panneau des champs :
#0
#1
#2
#3
(image jointe).Merlin
Maître des clésBonjour
PS : peut-être aurez-vous déjà rencontré le problème avec le logiciel de La Poste coliship ?
Ça me dit vaguement quelque chose.
Tu devrais faire une recherche dans le forum (sur « La Poste » « coliship » ou les formats), ou sinon il faudra demander à bebarth car c’est lui qui avait répondu, mais pour l’heure il est en vacances.Merlin
Maître des clésMerci pour la réponse, étant débutant en javascript, je tatonne pas mal et j’apprend un peu plus tous les jours…
On est tous passé par là.
:Smiley03:Merlin
Maître des clésOTAN pour moi il manquait un mot et un point dans le script :
if (this.getField(« CaseVide »).value.toString().length == 0) {
this.getField(« CaseQuiAffiche »).value = 1;
}
else {
this.getField(« CaseQuiAffiche »).value = « »;
}Sinon, null ça veut dire que le champ appelé n’existe pas. Il faut faire attention : JavaScript est sensible à la casse.
CaseVide et casevide ce n’est pas pareil.27 mai 2021 à 17:27 en réponse à : Formulaire valeur indiquée ne correspond pas au format du champ #69292Merlin
Maître des clésPourrais-je avoir un exemple de calcul ?
C’est le texte en vert, et orange, dans mon message ci-dessus.
:Smiley01:Merlin
Maître des clésTon script est bancal :
– il est inutile de placer event.value en variable,
– d’autant plus quand on l’utilise pas à chaque fois :
if (noteproposee < nNotauto || event.value > 20)– pourquoi compliquer inutilement une simple multiplication par 3 ??? :
this.getField(« note20p »).value = Math.ceil(this.getField(« note20 »).value*2)/2Et mon script non testé n’était pas fonctionnel non plus… :geek:
Ci-joint une version fonctionnelle (et soigneusement biffée).
:Smiley15:27 mai 2021 à 08:14 en réponse à : Formulaire valeur indiquée ne correspond pas au format du champ #69290Merlin
Maître des clésBonjour et bienvenue
C’est un comportement normal :
– les champs pourcentage calculent une division en utilisant la notation simplifiée,
– la notation simplifiée ne permet pas de protéger un calcul contre la division par zéro ou par rien,
– donc on obtient une erreur quand l’un des champs calculé ne contient rien.Il faut remplacer le calcul en notation simplifiée par un calcul en JavaScript, avec protection contre la division par zéro ou rien :
if (this.getField(« Essais1« ).value != 0 && this.getField(« Essais1« ).value != « ») {
event.target.value = this.getField(« Reussi1« ).value / this.getField(« Essais1« ).value;
}Merlin
Maître des clésBonjour et bienvenue
Essaye ça :
Code:if (this.getField(« CaseVide »).toString().length == 0) {
this.getField(« CaseQuiAffiche »).value = 1;
}
else {
this.getField(« CaseQuiAffiche »).value = « »;
}Merlin
Maître des clés:bonjour:
Merlin
Maître des clésBonjour
Dans le format PDF un signet n’est pas un « marqueur », c’est un hyperlien qui envoie quelque part dans le document.
Du coup il n’est pas possible de faire un lien vers un lien.Pour faire ce que tu veux il faut utiliser les « Destinations », c’est un peu le même principe que les « Ancres » en HTML : on ne pointe pas vers un numéro de page mais vers un marqueur invisible attaché à la page. Ce qui permet de déplacer/ajouter/supprimer des pages sans perdre les liens.
Merlin
Maître des clésCe document ne pouvant être public, voici un lien vers un document identique avec des zones masquées
Il m’a fallu environ 2,5 secondes pour afficher tout ce que tu avais masqué dans ce document (voir capture floutée).
Pour vraiment supprimer (et non pas juste masquer) des éléments dans un PDF il faut utiliser la fonction « Biffure », ou « Redact » en anglais.
Du coup je te conseille de supprimer le lien vers ce document.
:geek:Merlin
Maître des clésJe te propose ce script (non testé), mais il ne vérifie pas le point n°3 (entier ou finissant par ,5). Je saurais vérifier si c’est un entier mais pour le ,5 je sèche…
Code:var cMessage = « La valeur saisie n’est pas conforme, merci de recommencer. »;
var nNotauto = Number(this.getField(« note20 »).value);if (event.value.toString().length == 0) {
event.rc = true;
}else {
if (event.value < nNotauto || event.value > 20) {
app.alert(cMessage);
}
event.rc = false;else {
event.rc = true;
}
}Concernant le point n°4, c’est simple : il faut créer un champ masqué qui calcule le « maximum » des deux champs « note20 » et « note20p » et utiliser ce champ comme base de calcul pour le champ « note60 ». Capture ci-joint.
Merlin
Maître des clésBonjour et bienvenue
C’est plus rapide à faire qu’à expliquer, et une fois fait c’est facile à comprendre.
Tout ça pour dire que si tu pouvait partager tout ou partie de ton fichier la réponse serait plus facile.
(Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html )25 mai 2021 à 13:53 en réponse à : JavaScript : Supprimer les textes d’un tableau contenant un préfixe. #69265Merlin
Maître des clésTu ne serais pas en Ardèche ?
Photo prise à quelques dizaines de mètres au-dessus de la rivière du même nom
:Smiley03:24 mai 2021 à 10:32 en réponse à : JavaScript : Supprimer les textes d’un tableau contenant un préfixe. #69263Merlin
Maître des clésIl y a personne qui pourrait m’aider ? :Smiley11:
Je ne célèbre pas les fêtes religieuses mais je respecte les ponts et les jours fériés.
:Smiley15:24 mai 2021 à 10:29 en réponse à : JavaScript : Supprimer les textes d’un tableau contenant un préfixe. #69262Merlin
Maître des clésBonjour
On ne peut pas modifier les noms de champs avec JavaScript. Partant de là, à mon avis il serait plus simple de modifier le processus de base.
Je vois que les champs situés à gauche commencent par une capitale (Renault, Citroen…), contrairement à ceux de droite (renault, citroen…), donc l’idée serait de supprimer la balise Yy puisqu’on a déjà une différence.
Ensuite avec JavaScript on pourrait ne supprimer que les champs dont le nom commence par une lettre minuscule (ou l’inverse), il n’y aurait pas grand-chose à modifier dans ton script.Merlin
Maître des clés:Smiley01:
Ce n’est pas un bug, c’est une conséquence logique et attendue.
Traduction :if (b == 0) { // si la valeur de b est égale à zéro
event.value = 0; // la valeur résultante devient zéro
}
else { // sinon (si la valeur de b est différente de zéro)
event.value = a + b + c; // la valeur résultante devient la somme de a+b+c
}Pour un calcul sans condition on peut utiliser les fonctions de calcul d’Acrobat, ou la notation simplifiée :
AcroAb + AcroRa + AcroOthOu le JavaScript :
var a = Number(this.getField(« AcroAb »).value);
var b = Number(this.getField(« AcroRa »).value);
var c = Number(this.getField(« AcroOth »).value);
event.value = a + b + c;Merlin
Maître des clésBonjour et bienvenue
Tu peux te présenter si tu veux mais il n’y a pas de rubrique dédiée, partant du principe que c’est un forum « technique » et qu’on n’y vient pas pour raconter sa vie. Contrairement à d’autres forums plus « relationnels ». :geek:
Où est placé ce script ?
A priori il devrait fonctionner mais seulement s’il est placé en script de validation. Est-ce le cas ?
Peux tu partager ton document ? (Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html)Merlin
Maître des clésBonjour
Je ne vois pas de « check list » sur la gauche mais il me semble que c’est typiquement un cas d’utilisation des calques.
Merlin
Maître des clésOn en rêve tous, mais SONY n’en a rien à faire !
:joker: -
AuteurRéponses