Toutes mes réponses sur les forums
-
AuteurRéponses
-
MerlinMaître des clés
Quelle est sa couleur “normale” ?
MerlinMaître des clésBonjour
Essayez ça dans la Console JS d’Acrobat Pro, ou en Action :
for (var z=0; z<this.numPages; z++) {this.print(bUI: false, nStart: z, nEnd: z);}
MerlinMaître des clésJe suppose qu’il y a une collision avec la balise “italique” du BBcode utilisé par le forum.
J’ai remplacé par un “k” et ça fonctionne :
if (event.target.buttonGetCaption()=="AJOUTER") {
var coordonnees=event.target.rect;
var annotation=this.addAnnot({
page: 0,
type: "Text",
point: [coordonnees[2]+20,coordonnees[1]+20],
name: "annotationNo1",
});
event.target.buttonSetCaption("SUPPRIMER");
event.target.fillColor=color.red;
event.target.textColor=color.white;
} else {
var lesAnnotations=this.getAnnots({nPage:0});
for (var k=0; k<lesAnnotations.length; k++)
if (lesAnnotations[k].name=="annotationNo1") lesAnnotations[k].destroy();
event.target.buttonSetCaption("AJOUTER");
event.target.fillColor=color.green;
event.target.textColor=color.black;
}
MerlinMaître des clés👍
8 mars 2023 à 09:41 en réponse à : aT-Commentaires-rapport.js bien installé mais fonction introuvable #72634MerlinMaître des clésBonjour
Il y a un bug non identifié avec les dernières versions d’Acrobat, remplacez le plugin que vous avez par celui-ci qui devrait fonctionner :
https://shared-assets.adobe.com/link/d3541685-30a5-4b28-4307-8a66bfa368dc
MerlinMaître des clésBonjour
La réponse est non.
MerlinMaître des clés👍
MerlinMaître des clésBonjour
Si je comprend bien un clic sur un bouton fait apparaitre l’annotation correspondante.
Et il faudrait qu’un deuxième clic la fasse disparaitre, et ainsi de suite ?
Peux tu partager (tout ou partie de) ce fichier ?
MerlinMaître des clésLe mot de passe à l’ouverture (en haut sur la capture) est une “vraie” protection qui chiffre le document en entier. C’est ce que tu as utilisé pour ce fichier.
Pour cracker le mot de passe il faut les moyens de la CIA ou de la NSA.
Les restrictions d’utilisation (au milieu sur la capture) c’est un gadget, ce sont des instructions supplémentaires intégrées au fichier. Il suffit pour un logiciel de les ignorer pour déverrouiller le fichier.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésPeux tu partager ce fichier (ou un autre) ?
MerlinMaître des clés👍
MerlinMaître des clésSinon la requête GREP la plus simple est celle-ci :
\S+@\S+\.\S{2,}
Pour connaitre tous les détails sur cette requête GREP voir : https://www.abracadabrapdf.net/ressources-et-tutos/abracadabragrep/grep-pour-indesign-detecter-email/
MerlinMaître des clésDans ECMAScript il existe une fonction spéciale pour vérifier les adresses email : CBIsValidEmail()
Exemple :
// script de validation
if (event.value) {
event.rc = CBIsValidEmail(event.value);
if (!event.rc) {
app.alert("Cette adresse email semble invalide.\nMerci de recommencer.");
event.rc = false;
}
}
MerlinMaître des clésBonjour
Non testé mais ça devrait ressembler à ça :
for (var i = 0; i < this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if ((oFld.type == "text") && ((/\Question\.\d\.\d/.test(oFld.name))) || (/\R\.\d\.\d/.test(oFld.name))) || (/\Q\.\d\.\d/.test(oFld.name)))) {
oFld.setAction("Calculate", "EditReps();");
}
}
et
for (var i = 0; i < this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if ((oFld.type == "text") && ((/\Question\.\d\.\d/.test(oFld.name))) || (/\R\.\d\.\d/.test(oFld.name))) || (/\Q\.\d\.\d/.test(oFld.name)))) {
oFld.setAction("Keystroke", "Default();");
}
}
MerlinMaître des clésBonjour
Ce n’est pas possible avec Acrobat, sécurité oblige.
Si jamais ça fonctionnait avec ton logiciel (mais ça m’étonnerait) il faudrait utiliser “saveAs” :
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/doc.html#saveas
MerlinMaître des clésBonjour
Je crois que le problème vient de “this.event.value”, c’est en fait une valeur/expression globale, qui n’a pas vraiment sa place dans ce calcul.
Il faut utiliser “event.target.value” (= la valeur du champ cible de l’évènement en cours).
Dans le script d’exemple ci-dessous, celui du champ ST1JS, j’ai aussi modifié les conditions car on peut simplifier juste en testant “defaultValue”.
Ton script :
if (this.getField("SUPPL").value !=0 && this.getField("SUPPL").value !="" && this.getField("SUPPL").value !=null) {
this.event.value= (this.getField("ST1JS").value)*0.30
}else{
if (this.getField("CARTE").value >0) {
this.event.value= (this.getField("PU1JS").value*this.getField("1JS").value)
} else {
this.event.value= (this.getField("PU1JSE").value*this.getField("1JS").value)
}
}
Le script que je te propose de tester et d’adapter aux autres champs :
if (this.getField("SUPPL").value != this.getField("SUPPL").defaulValue) {
event.target.value = (this.getField("ST1JS").value)*0.30
}else{
if (this.getField("CARTE").value > 0) {
event.target.value = (this.getField("PU1JS").value*this.getField("1JS").value)
} else {
event.target.value = (this.getField("PU1JSE").value*this.getField("1JS").value)
}
}
MerlinMaître des clés“Pour conclure donc : La seule solution qu’il me reste serait le »imprimer en pdf » et d’aplatir avec Reader par ce moyen.”
Non, comme je l’ai dit ci-dessus c’est typiquement un cas d’utilisation de la signature numérique :
- tout le document est verrouillé et pour de vrai, car toute tentative de modification ou d’altération se traduit par une invalidation de la signature, et donc du document.
- envoyer ou recevoir un document signé et certifié numériquement est et fait beaucoup plus pro que d’envoyer un document lambda.
- de mémoire le logiciel gratuit Acrobat Reader limite le nombre mensuel de signatures à une quinzaine mais on peut s’abonner à AdobeSign (ou autre) indépendamment de l’abonnement à Acrobat si on a besoin de plus.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésBonjour
Je vais laisser bebarth te répondre, il a des scripts en stock.
(Je les ai aussi mais faute de les avoir classés je ne sais plus lequel est le bon).
MerlinMaître des clésIl faut toujours avoir aussi Acrobat Reader pour tester, on a souvent des surprises (parfois bonnes) même si on respecte la documentation.
Depuis qu’on ne peut avoir Acrobat Reader et Pro sur le même poste j’utilise Foxit Reader. Ce qui me contraint à encore plus de rigueur car il ne supporte pas certaines fonctions JavaScript obsolètes, que Acrobat continue de supporter pour raisons de rétrocompatibilité.
MerlinMaître des clés“Comment fait-on pour « aplatir » le pdf depuis Acrobat Reader ?”
“Voici un petit exemple simple avec un bouton qui aplatit ton formulaire”
Ça ne fonctionne pas avec Acrobat Reader (ni avec Foxit Reader), il faut utiliser Acrobat Pro ou Acrobat Standard
MerlinMaître des clésMenu Fichier : Imprimer (en PDF)
Mais ça ne fonctionne pas sur MacOS (sauf si on utilise Aperçu).
MerlinMaître des clésPlus généralement je ne peux pas m’empêcher de penser que si ce formulaire à besoin d’un tuto pour être rempli c’est probablement qu’il y a un problème de présentation ou d’ergonomie…
🤔
MerlinMaître des clésBonjour
Oui il suffit d’afficher une alerte à l’ouverture du document, par exemple :
app.alert("<span style="color: #339966;">Blablabla</span>");
Cette ligne de script doit être placée en “Script de document”, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/
“Et donc dans mes rêves les plus fous, le pop-up n’apparait plus une fois qu’on a ‘enregistré-sous’.”
On devrait peut être pouvoir bidouiller quelque chose…
Je vais réfléchir.
MerlinMaître des clés- Je ne comprend pas l’étape 2, pourquoi protéger un document vierge avec un mot de passe ?
- Il faudrait que tu partages (tout ou partie) de ton document deux fois : une version protégée et une non protégée pour qu’on puisse répondre efficacement.
- Concernant l’étape 3 il faut bien avoir conscience que ledit mot de passe ne couvre que des “restrictions d’utilisation”. Ce n’est pas une protection ni un chiffrage, même ma grand-mère sait comment l’outrepasser en moins d’une minute. (https://smallpdf.com/fr/unlock-pdf)
MerlinMaître des clés“Pour donner l’exemple lorsque je mais « chantier non déclarer » dans infraction il faut que les 4 cases texte qui suit soit blanche ou grise et qu’on puisse rien écrire dessus.”
Pour qu’on puisse t’aider il faut les règles complètes, pas juste un exemple.
MerlinMaître des clésSi tu veux une aide efficace il faudrait dire lesquelles.
MerlinMaître des clés“Je veux juste que le fichier xlsm s’ouvre dans excel en appuyant sur un bouton incorporer dans mon formulaire PDF”
Il va falloir choisir entre incorporer le fichier XLSX dans le PDF ou bien l’ouverture du fichier avec Excel (qui n’est pas possible depuis Acrobat).
MerlinMaître des clésC’est typiquement un cas d’utilisation de la signature numérique, une fois le document signé (avec Reader) il n’est plus modifiable.
Tous les champs sont aplatis, et tout est verrouillé.
MerlinMaître des clésBonjour
Ce sont les seuls restrictions possibles (capture), sachant qu’il est très facile de les outrepasser.
Sinon on peut toujours bricoler des restrictions en JavaScript mais il encore plus facile de les outrepasser (il suffit de désactiver JavaScript).
Tout dépend à quels utilisateurs tu t’adresses.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésBonjour
Oui mais :
- le fichier Excel doit être toujours au même endroit,
- il faut utiliser Acrobat Pro ou Standard (pas Reader),
- ça ne peut fonctionner que depuis un “script d’application. Voir :
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/
MerlinMaître des clésLe hasard fait bien les choses, un nouveau remerciement à fait remonter ce sujet qui pose la même question et à laquelle j’avais répondu de façon complètement différente.
Il y a donc au moins deux façons de faire : https://community.adobe.com/t5/acrobat-discussions/how-to-delete-image-in-the-background-from-all-pages-at-once/td-p/11984847
(Il y a un bouton Traduire sous chaque message)
MerlinMaître des clés👍
MerlinMaître des clésLes informations sélectionnées sont définitivement supprimées du document, c’est pour ça que par défaut Acrobat force ensuite l’enregistrement d’une copie.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésBonjour
Pas besoin de script ni de solution compliquée, il faut utiliser la fonction Biffer > Assainir le document. Voir capture.
Bien entendu il faudra enregistrer une copie du document sans image.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésOui, no problemo.
MerlinMaître des clésBonjour
Un champ de formulaire PDF de type texte est forcément mono-colonne.
Avec JavaScript on peut faire passer d’un champ à l’autre au cours de la saisie, mais à chaque fois on perd le dernier caractère saisi.
Ce qui est plutôt déconcertant pour l’utilisateur final.
MerlinMaître des clésBonjour
Techniquement la mise en œuvre est simple, c’est le contexte qui l’est moins. Et ça ne peut fonctionner que sur un seul ordinateur et pour un seul utilisateur.
Quel évènement devrait déclencher le nouveau numéro ?
Pour répondre il serait plus simple que tu partages (tout ou partie de) ce document.
MerlinMaître des clésC’est très curieux, j’ai encore refait des tests et j’en perd mon latin.
😖
MerlinMaître des clésJe pensais un bug dans le document PDF.
Il faudrait en refaire un autre en partant de zéro pour savoir.
MerlinMaître des clésBonjour
Joker ! 🙃
C’est le genre de question que je poserais plutôt sur ce forum, même si ça ne concerne pas vraiment le SDK, car il est fréquenté par des experts qui pourront certainement te répondre :
MerlinMaître des clésTu peux soit utiliser la version d’essai d’Acrobat Pro (7 jours) soit me faire passer ton document et me dire combien tu veux de duplicata.
31 janvier 2023 à 22:13 en réponse à : Est-il possible de transferer des données d’un PDF à un autre ? #72452MerlinMaître des clésJe ne comprend pas.
MerlinMaître des clésBonjour
Avec Acrobat Pro c’est très simple, tu copie-colles tes champs dans un autre document vierge, dans le panneau des champs tu cliques sur le menu “AZ” pour les classer par ordre alphabétique, tu renommes la racine “.1” en “.2” (capture), et tu copie-colles en retour dans ton document d’origine.
Pourquoi faut il le faire dans un autre document ?
Parce-que sinon ça renomme tous les champs enfants de Q.1 dans le document, et je suppose que ce n’est pas ce que tu veux faire.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésBonjour
C’est effectivement la bonne réponse.
La question qui vient immédiatement après c’est, par exemple : comment avoir du texte en corps 12 au départ et qui se réduit ensuite ?
Un jour j’ai passé du temps à faire des équivalences entre la hauteur du champ et le corps du texte tant qu’il ne déborde pas et j’ai obtenu ça (capture d’écran ci-dessous).
Ce sont des équivalences faites en utilisant la police de caractère Helvetica, donc qui peuvent varier selon la police utilisée.
Si ça peut aider.
Attachments:
You must be logged in to view attached files.26 janvier 2023 à 09:58 en réponse à : Est-il possible de transferer des données d’un PDF à un autre ? #72438MerlinMaître des clésSi la boite de dialogue le dit c’est que c’est vrai.
Dans le menu “AZ” du panneau d’outils “Préparer le formulaire” on peut afficher les champs par ordre alphabétique, c’est plus pratique pour en retrouver un.
Attachments:
You must be logged in to view attached files.25 janvier 2023 à 15:02 en réponse à : Est-il possible de transferer des données d’un PDF à un autre ? #72435MerlinMaître des clésBonjour
Il faut afficher le PDF rempli et “Exporter les donnés”, ce qui génère un fichier .FDF qu’il faut enregistrer. Ça se passe dans le panneau d’outil “Préparer le formulaire” : menu Autres.
Ensuite depuis les PDF non remplis il faut “Importer les données” de ce fichier .FDF
Pour que ça fonctionne il faut que les champs aient exactement le même nom dans tous les formulaires.
Les données des champs dont les noms ne sont pas commun entre deux PDF sont ignorées.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésBonjour
Un PDF envoyé par email avec la fonction intégrée n’a pas besoin d’être enregistré, c’est automatique (sinon beaucoup ne recevraient que des formulaires vides !).
Voir captures.
Aplatir recouvre plusieurs choses :
- aplatir les calques (n’en conserver qu’un seul),
- aplatir les commentaires (les fusionner dans le fond de page),
- aplatir les champs de formulaire (les fusionner dans le fond de page) et je crois que c’est à ça que tu penses.
Dans les trois cas ce n’est pas possible avec Acrobat Reader, il faut avoir la version Pro ou la version Standard.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésBonjour
Je ne sais pas, je t’invite à chercher sur ce site qui est un des grands fournisseurs de plugins pour Acrobat, l’offre est très riche :
De mémoire, j’ai entendu parler d’un plugin qui permet à Acrobat Pro de gérer les calques et les objets qui y sont attachés comme dans un logiciel normal (Photoshop, InDesign, Illustrator…), c’est souvent plus pratique que le groupage.
MerlinMaître des clésfor (var i = 1 ; i<50 ; i++) {
for (var f = 0 ; f<50 ; f++) {
if
(this.getField("Q."+i +"."+f) != null && this.getField("Q."+i
+"."+f).type != "combobox") {this.getField("Q."+i +"."+f).value = "";}
if
(this.getField("Q."+i +"."+f) != null && this.getField("Q."+i
+"."+f).type == "combobox") {this.resetForm([("Q."+i +"."+f)]);}
Je ne comprend pas ce script inutilement compliqué qui pourrait être remplacé plus simplement par :
this.resetForm(["Q"]);
MerlinMaître des clésAutre question, est il possible de faire « remonter » plus d’une variable lors d’un clic sur un bouton pour appeler une fonction qui utilisera ces variables.
Oui.
MerlinMaître des clésPour les autres, j’ai essayé mais il y avait des erreurs et comme j’ai de fortes lacunes dans ce que tu proposes, je n’ai pas pu corriger.
1000 excuses, une parenthèse a disparu entre le test et la copie dans le sujet. C’est corrigé (ci-dessus, c’est la parenthèse en bleu).
Mais là c’est plus une question d’outil que de niveau, la console JS d’Acrobat m’a tout de suite signalé la parenthèse manquante. 😉
MerlinMaître des clésÇa sent le bon gros bug, peut être que ça ira mieux dans la version prochaine…
🙏
MerlinMaître des clésCependant pour le reset je me baserais seulement sur les noms de champs, ce script devrait aller encore plus vite car il ne cherche pas de champs inexistants :
function Raz() {
for (var i = 0; i < this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if (/\bQ.+/.test(oFld.name)) {
oFld.display = display.hidden;
oFld.fillColor = color.white;
oFld.value = oFld.defaultValue;
}
else if (/\bQ\.1.+/.test(oFld.name)) {
oFld.display = display.visible;
oFld.readonly = false;
}
else if (/\bTQ.+/.test(oFld.name) || /\bQuestion.+/.test(oFld.name) || /\bVerifier.+/.test(oFld.name) || /\bRecommencer.+/.test(oFld.name) || /\bAide.+/.test(oFld.name)) {
oFld.display = display.hidden;
oFld.readonly = false;
}
}
this.getField("Verifier.1.0").display = display.visible
this.getField("Verifier.1.0").display = display.noPrint;
this.getField("Recommencer.1.0").display = display.visible;
this.getField("Recommencer.1.0").display = display.noPrint;
this.getField("TQ.1.0").display = display.visible;
this.getField("Aide.1.0").display = display.visible;
this.getField("Erreurs").value = 0;
this.getField("Menu.5").value = 0; // !!!
}
MerlinMaître des clésAutre chose, j’ai lu ton code de reset qui mouline beaucoup et inutilement :
- il faut oublier le “f” !
- “100” c’était un exemple, dans un premier temps tu pourrais utiliser un chiffre plus modeste.
S’agissant d’une propriété partagée (display, color, etc) quand on s’adresse à un champ parent on s’adresse à tous ses enfants.
Par exemple :
this.getField("Q.1).display = display.hidden;
suffit à masquer tous les champs dont le nom commence par “Q.1.”
Donc la première partie de la fonction Raz() :
function Raz() {
this.getField("Erreurs").value = 0;
this.getField("Menu.5").value = 0;
for (var i = 1 ; i<101 ; i++) {
for (var f = 0 ; f<101 ; f++) {
if (this.getField("Q."+i +"."+f) != null) {this.getField("Q."+i +"."+f).display = display.hidden;
this.getField("Q."+i +"."+f).fillColor=color.white;
}
if (this.getField("TQ."+i +"."+f) != null) {this.getField("TQ."+i +"."+f).display = display.hidden;}
if (this.getField("Question."+i +"."+f) != null) {this.getField("Question."+i +"."+f).display = display.hidden;}
if (this.getField("Verifier."+i +"."+f) != null) {this.getField("Verifier."+i +"."+f).display = display.hidden;}
if (this.getField("Recommencer."+i +"."+f) != null) {this.getField("Recommencer."+i +"."+f).display = display.hidden;}
if (this.getField("Aide."+i +"."+f) != null) {this.getField("Aide."+i +"."+f).display = display.hidden;}
}
}
...
Pourrait être simplifiée ainsi (sans les 100 x 100 boucles “f”) :
function Raz() {
this.getField("Erreurs").value = 0;
this.getField("Menu.5").value = 0;
for (var i = 1 ; i<101 ; i++) {
if (this.getField("Q."+i) != null) {
this.getField("Q."+i).display = display.hidden;
this.getField("Q."+i).fillColor=color.white;
}
if (this.getField("TQ."+i) != null) {this.getField("TQ."+i).display = display.hidden;}
if (this.getField("Question."+i) != null) {this.getField("Question."+i).display = display.hidden;}
if (this.getField("Verifier."+i) != null) {this.getField("Verifier."+i).display = display.hidden;}
if (this.getField("Recommencer."+i) != null) {this.getField("Recommencer."+i).display = display.hidden;}
if (this.getField("Aide."+i) != null) {this.getField("Aide."+i).display = display.hidden;}
}
…
MerlinMaître des clésJe crois que ça vient de la fonction “EditReps()” qui est utilisée en script de calcul par le champ “Aide.1.1” parce-que la valeur du champ “Menu5” (qui est une case à cocher…) n’est pas égale à “1”, voir capture.
Quand on fait un reset (resetForms ou defaulValue) ça déclenche les actions de calcul de tous les champs, actions qui s’effectuent donc après le reset.
En clair le champ “Aide.1.1” s’auto-réaffiche après chaque reset.
Note que dans cette fonction tu pourrais avantageusement remplacer la ligne (encadrée) :
if (this.getField("Menu.5").value != 1) {
par
else {
😉
Attachments:
You must be logged in to view attached files.MerlinMaître des clésJe viens de m’apercevoir qu’en fait ça fonctionne aussi avec Acrobat… mais seulement si le champ “email” est vide.
==> Je donne ma langue au chat !
MerlinMaître des clésBonjour
J’ai l’impression qu’il s’agit d’un bug dans la dernière version car chez moi ça ne fonctionne pas avec Acrobat mais par-contre ça fonctionne très bien avec Foxit Reader et PDF Studio.
Le script me parait correct, je ne vois aucune raison pour que ça ne fonctionne pas.
La console JS affiche cette erreur à chaque fois :
GeneralError: Operation failed.
Doc.mailDoc:9:Field Botão-Email:FocusCependant :
- le script serait mieux placé s’il était en action “souris relevée” (mouse up) plutôt qu’en action “champ activé” (on focus).
- Le première ligne (qui verrouille tous les champs) et la dernière ligne (qui déverrouille tous les champs) ne servent à rien.
MerlinMaître des clés” (2) Je ne vois pas trop comment faire pour qu’en cliquant sur Raz seule la question 1 soit visible”
Ça c’est le plus facile, il faut masquer tous les champs Question, par exemple en se basant sur leurs noms, et ensuite ré-afficher la question 1.
Exemple :
for (var i = 1 ; i<101 ; i++) {
if (this.getField("Q" +i) != null) {this.getField("Q" +i).display = display.hidden;}
}
this.getField("Q1").display = display.visible;
Pour le reste je répondrai plus tard.
La dernière version de ton document est inutilisable avec Acrobat, au début on voit des éléments s’afficher séquentiellement et ensuite il n’en fini plus de mouliner jusqu’à ce que je le force à quitter/Fin de tâche.
J’ai un faible pour les usines à gaz et les problématiques inhabituelles, et j’ai aussi un faible pour les gens qui se décarcassent pour créer un outil à leur main plutôt que d’attendre en pleurnichant que ça tombe du ciel.
MerlinMaître des clésLa position officielle d’Adobe, pour qui sait lire entre les lignes ça veut dire que Acrobat Pro X, XI et 2017 ne seront pas mis à jour :
Adobe Acrobat uses a certificate issued by ‘Adobe Root CA’ to sign Reader Extended PDFs. This certificate can no longer be used to create new Reader Extended PDFs post its expiry on January 7, 2023. The November 2022 update of Adobe Acrobat (Continuous and Classic track) creates Reader Extended PDFs using a new certificate issued by ‘Adobe Root CA 2’. Adobe recommends users update to the latest version of Acrobat (November 2022 update or later) to continue using this functionality post-January 7, 2023.
Please update the application to the latest version, 22.3.20281 (Mac) or 22.3.202082 (Win) and reboot the computer once. Go to Help > Check for updates.
You may also download the patch manually from the link https://www.adobe.com/devnet-docs/acrobatetk/tools/ReleaseNotesDC/index.html
MerlinMaître des clésJe viens de constater que depuis quelques jours le forum d’Adobe est envahi par la même question que la tienne.
Il en ressort que c’est la date d’expiration du certificat d’Acrobat DC qui pose problème, une mise à jour est disponible :
https://helpx.adobe.com/acrobat/kb/reader-extended-pdfs-and-adobe-root-ca-expiry.html
MerlinMaître des clés“« Remettre à 0 les liste déroulantes avec le bouton Raz…
Pour celui-ci ça marche mais la console me renvoie une erreur :”
Je suppose que c’est le même problème que ci-dessus, j’ai testé ça fonctionne correctement avec “resetForm” :
for (var i = 0; i < this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if (oFld.type == "combobox") {this.resetForm(oFld.name);}
}
MerlinMaître des clés“J’ai essayé de m’en inspirer pour définir par defaut les Checkbox cochées avec ceci Dans le script Default :
for (var i = 1 ; i<101 ; i++) {this.getField(“R” +i).defaultValue = this.getField(“R” +i).value;}Mais j’ai une erreur : Doc:Open:7: TypeError: this.getField(…) is nullLorsque je coche ou décoche une checkbox R…”
Oui pardon, pour le coup comme on s’adresse à un champ parent on ne peut pas utiliser “value = defaultValue”, il faut utiliser “resetForm”. J’ai testé ça fonctionne :
for (var i = 1 ; i<100 ; i++) {
if (this.getField("R" +i) != null) {this.resetForm("R" +i);}
}
MerlinMaître des clés👍
MerlinMaître des clés“Remettre à 0 les liste déroulantes avec le bouton Raz”
for (var i = 0; i < this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if (oFld.type == "combobox") {oFld.value = oFld.defaultValue;}
}
MerlinMaître des clés« Cacher ou masquer les checkBox (R7.1 à R7.5) avec le script EditReps »
“Oui, mai je cherche un script qui fonctionne quelque soit le numéro de champ R…”Dans ce cas, si on suppose par exemple que le nombre maximal est de 100 :
for (var i = 1 ; i<101 ; i++) {
if (this.getField("R" +i) != null) {this.getField("R" +i).display = display.hidden;}
}
MerlinMaître des clés“Définir la valeur par defaut des mêmes checkboxes avec le script Default”
for (var i = 1 ; i<6 ; i++) {this.getField("R7." +i).defaultValue = this.getField("R7." +i).value;}
MerlinMaître des clés“Cacher ou masquer les checkBox (R7.1 à R7.5) avec le script EditReps”
this.getField("R7").display = display.hidden;
MerlinMaître des clésAttention quand même : cette requête GREP détecte le “R” en début de mot, mais pas forcément en début de nom.
Donc si un nom de champ contient des espaces et un mot commençant par “R” il sera détecté même le mot n’est pas en début de nom.
Par exemple le champ “Loulou Fifi Riri” sera détecté comme positif.
MerlinMaître des clés“Je voudrais que celui-ci cache tous les champs qui commencent par « R. »”
for (var i = 0; i < this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if (/\bR.+/.test(oFld.name)) {
oFld.display = display.hidden;
}
}
MerlinMaître des clés“Pour le script de validation à placer, je me demandais comment utiliser la console pour propulser le même script dans tous les champs qui commencent par « R. »”
Ce serait une mauvaise idée car si jamais tu voulais un jour pouvoir modifier ou supprimer ce script ce serait un enfer.
Place le script en fonction (dans les scripts de document) et appelle la fonction depuis les champs.
Ce script détecte tous les champs texte dont le nom commence par un R en capitale et leur ajoute “MaFonction” en script de validation :
for (var i = 0; i < this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if ((oFld.type == "text") && (/\bR.+/.test(oFld.name))) {
oFld.setAction("Validate", "MaFonction();");
}
}
MerlinMaître des clésComment envoyer/partager/poster une pièce jointe volumineuse :
😎
MerlinMaître des clésPour la suite il faudrait voir la pièce jointe…
😉
(Upload Errors: 03-ex.4_eleve-test.pdf: File exceeds allowed file size.)
MerlinMaître des clésPour que la valeur par défaut soit celle saisie, j’ai pensé à mettre en script de calcul ce code :
var a = event.target.name;
this.getField(a).defaultValue = this.getField(a).value;Qu’en pensez vous ?
event.target.defaultValue = event.target.value;
Typiquement à placer en script de validation.
MerlinMaître des clés“Ce que je trouves bizarre, c’est qu’il y le mode de compatibilité qui est positionné sur « Adobe 8 et + ».”
Ça n’a rien à voir avec les “Reader Extended Rights”, en fait ça c’est la version du format PDF.
MerlinMaître des clésCi-joint.
Activé avec Acrobat 9 et avec Acrobat 11.
Attachments:
You must be logged in to view attached files.MerlinMaître des clés👍
MerlinMaître des clésBonjour et bonne année
Tu n’as pas besoin de compter ces champs, il suffit de les prendre en compte seulement s’ils existent.
if (this.getField("Q"+n+"."+1) != null && //etc
MerlinMaître des clésBonjour et bonne année
A priori les scripts ne sont pas en cause.
Le problème viendrait plutôt de la version d’Acrobat Pro utilisée pour activer les fonctions étendues dans ce document.
Activer les fonctions étendues c’est en fait comme apposer une sorte de signature numérique qui déverrouille certaines fonctions habituellement masquées dans Acrobat Reader, mais Acrobat Reader X est une version ancienne qui n’est plus mis à jour depuis longtemps et qui ne reconnait pas forcément les signatures des versions plus récentes d’Acrobat Pro.
Donc il faudrait tester l’activation avec une version plus ancienne d’Acrobat Pro, si tu n’en a pas à disposition je peux le faire avec Acrobat Pro XI et/ou 9.
MerlinMaître des clésBonjour et bonne année
Je ne sais pas quel est ton but mais tu te lances dans un truc compliqué, même si je sais que ça ne te fait pas peur.
Parce-que pour connaitre la largeur du plein écran et la surface affichée il faut commencer par connaitre les dimensions de l’écran utilisé.
C’est faisable mais ça implique beaucoup de calculs et de conditions.
MerlinMaître des clésCeci dit, légalement l’ajout d’une signature scannée dans un champ image ça ne vaut rien.
Pourquoi ne pas utiliser la vraie fonction de “Signature” ?
MerlinMaître des clésJe ne sais plus avec quelle version d’Acrobat est arrivée l’option qui permet d’effacer l’image mais elle est assez ancienne, ici elle est en anglais mais elle se trouve toujours au même endroit :
Attachments:
You must be logged in to view attached files.MerlinMaître des clésBonjour
Il faut utiliser un champ-image (en fait un bouton).
MerlinMaître des clésOui, effectivement du coup ce sont des “annotations” et non pas des pièces jointes.
Je viens de chercher dans la doc et je n’ai rien trouvé qui permette d’exporter les annotations de type “attachment”.
Ce qu’on peut faire avec JavaScript c’est exporter les annotations dans un fichier FDF ou XFDF, éventuellement après les avoir triées, mais apparemment rien de permet d’accéder à leur contenu.
Attachments:
You must be logged in to view attached files.MerlinMaître des clés👍
Je ne m’en serai jamais rappelé.
MerlinMaître des clésBonjour
Ce bug me rappelle vaguement quelque chose, mais c’est un “bug PC” et à l’époque j’utilisais un Mac. Donc je n’ai pas mémorisé le truc.
Par contre il est toujours possible d’utiliser la Notation Simplifiée, sachant que si il y a un point ou une espace dans le nom d’un champ il faut “l’échapper”.
C’est à dire qu’il faut placer un slash devant, par exemple pour multiplier les champs “030 €Carburant” et “champ.1” :
030\ €Carburant * champ\.1
MerlinMaître des clésJe crois que la méthode exportdataobject a été faite pour toi :
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/doc.html#exportdataobject
Ce qui devrait donner quelque chose comme ça :
for (var i=0; i<this.dataObjects.length; i++) {this.exportdataobject(this.dataObjects.name);}
MerlinMaître des clésIl faut toujours avoir un vieil ordi avec Acrobat 9, car les messages de la Console ont changé avec Acrobat X.
Depuis Acrobat X la Console dit à quelle ligne ça ne fonctionne pas sans donner le nom du champ qui pose problème.
Avant c’était l’inverse.
Donc c’est un script de calcul qui ne trouve pas le champ “Ligne1” :
TypeError: this.getField("Ligne1") is null
1:Field:Calculate
J’ai ajouté un champ “Ligne1” pour voir : il n’y a plus d’erreur et ce champ affiche un numéro qui s’incrémente +1 à chaque fois.
Le script de calcul fautif se trouve dans le champ “liste.22”.
MerlinMaître des clésSinon dans ton code tu peux préciser (à chaque fois) :
if (this.getField("NOM") != null) // si le champ NOM existe
{this.getField("NOM").value = "blablabla";}
Ainsi si le champ n’existe pas il ne se passe rien et il n’y a pas d’erreur.
9 décembre 2022 à 18:40 en réponse à : sauvegarder et recupérer données dans un fichier texte #72186MerlinMaître des clésCes fichiers textes sont ils incorporés en pièce jointe dans le PDF ou sont ils externes ?
9 décembre 2022 à 14:45 en réponse à : sauvegarder et recupérer données dans un fichier texte #72183MerlinMaître des clésBonjour
Il faudrait enregistrer ce fichier texte en tant que pièce jointe dans le document PDF ou bien en fichier séparé ?
Dans quel(s) logiciel(s) et conditions faudrait il que ça fonctionne ?
MerlinMaître des clésBonjour
Avec mon Acrobat Pro ce document fonctionne très bien et la Console reste silencieuse.
MerlinMaître des clés“Mais je pense que pour changer a volonté, il ne faut pas que cela change a fonction de la langue du logiciel de l’utilisateur.”
Rien n’empêche de faire les deux.
On peut ajuster la langue en fonction du réglage du logiciel utilisé et proposer à l’utilisateur une option pour changer de langue.
MerlinMaître des clés👍
MerlinMaître des clésPourquoi lister tous les champs les uns après les autres alors qu’ils ont un élément commun et connu dans leurs noms ?
JavaScript peut s’en débrouiller tout seul si on lui indique le tronc commun du “nom” :
😉
for (var i = 0; i < this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if ((oFld.type != "button") && (/nom/.test(oFld.name))) {
oFld.value = oFld.defaultValue;
// ou
// this.resetForm(oFld.name);
}
}
Voir : https://www.w3schools.com/jsref/jsref_regexp_test.asp
MerlinMaître des clésAprès utilisation du bouton “email” la console dit qu’un champ n’existe pas :
TypeError: this.getField(...) is null
Le script dit, à la dernière ligne :
this.getField("Nom_Fichier_1").setFocus();
Alors qu’aucun champ ne porte ce nom dans le document.
Donc je suggère de remplacer la dernière ligne du script par :
this.getField("Nom_Fichier").setFocus();
28 novembre 2022 à 11:44 en réponse à : Configurer le format de plusieurs champs en même temps #72072MerlinMaître des clés“Je voudrais configurer le format des champs => nombre avec deux décimales et avec un point comme séparateur.
(…)
Je suis obligé de configurer les champs un par un.
(…)
(Je précise que je renomme automatiquement mes champs de 0 à x par un autre script).”
Il n’y a pas besoin de script, ça peut se faire en quelques clics.
Il faut créer un premier champ et le paramétrer comme il faut (format, aspect, etc.).
Ensuite clic-droit sur le champ : Créer plusieurs copies.
Ce qui numérote automatiquement tous les nouveaux champs.
Attachments:
You must be logged in to view attached files.MerlinMaître des clésCe script ne peux pas fonctionner, la syntaxe n’est pas correcte :
this.getField("Nom_Fichier_1").setFocus();
Par ailleurs, si la page modèle est dupliquée (spawn) il faut indiquer le numéro de widget du champ puisqu’il existe plusieurs fois dans le document.
MerlinMaître des clés“le but serait de pouvoir basculer d’une langue a l’autre à volonté.”
Oui mais comment ? Tout le reste dépend de cette réponse.
Il faut t’arracher les informations une par une et tu ne réponds pas vraiment aux questions posées.
Met toi à la place de quelqu’un qui ne sait rien de ce document ni de la façon dont il devrait être utilisé.
MerlinMaître des clésOK, mais qu’est-ce qui devrait déclencher la traduction ?
Faut il deux documents en deux langues ?
Faut il que les champs du document s’adaptent automatiquement à la langue utilisée par le logiciel de l’utilisateur ?
Est-ce l’utilisateur qui devrait commander le changement de langue ?
…
-
AuteurRéponses