abracadabraPDF › Forums › PDF – Général › Renommer indices
- Ce sujet contient 42 réponses, 3 participants et a été mis à jour pour la dernière fois par bebarth, le il y a 1 mois et 1 semaine.
-
CréateurSujet
-
3 décembre 2024 à 11:24 #75228michel c.Participant
Bonjour, il me semble que quelqu’un ici (je pense Merlin) avait parlé d’un logiciel qui permettait de renommer en lot les indices des champs de formulaires dans un ancien post.
Bien sur je n’ai pas pensé à le noter…
Si ça vous dit quelque chose.
Merci
-
CréateurSujet
-
AuteurRéponses
-
3 décembre 2024 à 14:52 #75229michel c.Participant
Je viens de tester un truc à partir d’un script trouvé sur le net mais rien ne se passe. Je cherche encore…
Attachments:
You must be logged in to view attached files.3 décembre 2024 à 18:17 #75231michel c.ParticipantJe viens de retrouver le logiciel, il s’agit de Pdf Studio. Je viens de tester le renommage séquentiel mais ça ne me fait pas gagner de temps.
Je voulais renommer 30 champs : “Q.7.1” à “Q.7.30” qui se seraient appelés : “R.7.1″ à R.7.30”.
Et je voulais que ce soit fait respectivement pour chaque champ (que le Q.7.1 devienne R.7.1 et ainsi de suite)
Cependant le renommage a été fait dans le désordre.
Je suis donc à la recherche d’un outil ou d’une astuce pour y arriver.
En gros si je décompose le nom de champ en 3 parties (nom ; indice1 ; indice2), j’aimerais qu’en spécifiant ou en sélectionnant le nom du champ je puisse modifier l’indice 1 et que les indices 2 soient inchangés.
Si je comprend bien, l’astuce serait de récupérer les propriétés de chaque champ, de créer des nouveaux champs avec les mêmes propriétés mais des noms différents puis d’effacer les champs d’origine.
Je perdrais je pense au passage les actions liés à ces champs. Mais ça ce n’est pas grave, les champs que je souhaite “renommer” ne seront pas des champs ayant des scripts.
Merci
- Cette réponse a été modifiée le il y a 1 mois et 4 semaines par michel c..
3 décembre 2024 à 18:45 #75233MerlinMaître des clésBonjour
Il te faut télécharger la version d’essai de Qoppa PDF Studio qui permet de renommer plusieurs champs de formulaire à la fois, des centaines si besoin.
Comme cette version d’essai ajoute des filigranes l’astuce c’est de faire ça dans une copie du document PDF et ensuite de ramener les champs renommés dans le document original par copier-coller en ouvrant les 2 PDF avec Acrobat, ou avec PDF Expert.
Pour trouver cette fonction il faut sélectionner plusieurs champs à la fois et faire un clic-droit dessus : Sequential renaming (Je ne l’ai pas en français).
Attachments:
You must be logged in to view attached files.3 décembre 2024 à 18:48 #75235MerlinMaître des clésNos messages se sont croisés (j’étais au téléphone avec un bavard).
Sinon, bebarth a créé un utilitaire de renommage des champs, je pense qu’il va t’en parler.
5 décembre 2024 à 19:31 #75236michel c.ParticipantBon j’avance à tâtons, ça marche très partiellement…
Attachments:
You must be logged in to view attached files.6 décembre 2024 à 09:58 #75238MerlinMaître des clésbebarth doit être en vacances.
J’ai retrouvé le sujet, le script y est en pièce jointe :
6 décembre 2024 à 11:20 #75239michel c.ParticipantJe viens de tester pour modifier la première partie ou la 2ème au choix. Mais ça ne fonctionne toujours pas…
Attachments:
You must be logged in to view attached files.6 décembre 2024 à 11:22 #75241michel c.ParticipantJe viens d’essayer le fichier proposé par BB mais ça ne fonctionne pas, j’ai une erreur à la ligne 12…
Attachments:
You must be logged in to view attached files.7 décembre 2024 à 18:38 #75255MerlinMaître des clés“Je voulais renommer 30 champs : “Q.7.1” à “Q.7.30” qui se seraient appelés : “R.7.1″ à R.7.30”.”
Il y a beaucoup plus simple qu’un script, c’est une astuce bien cachée dans Acrobat (je ne sais pas pour PDF Expert).
Dans le panneau des champs il faut d’abord cliquer sur le bouton AZ pour afficher les champs dans l’ordre alphabétique.
À partir de là il apparaissent sous forme d’une arborescence qu’on déplie en cliquant sur les flèches, ce sont les points dans les noms qui séparent chaque niveau.
Il faut juste savoir qu’il suffit de double-cliquer sur un nom pour pouvoir renommer, on peut renommer la racine ou n’importe quel niveau en deux secondes. 😉
Attachments:
You must be logged in to view attached files.8 décembre 2024 à 13:44 #75269michel c.ParticipantJe vais regarder si j’ai cette fonctionnalité dans pdf XChange. Mais si elle est cachée, alors elle est bien cachée…
Merci en tout cas. Je vais continuer à bosser sur ce script je ne suis pas très loin d’y arriver je pense.
8 décembre 2024 à 15:03 #75271MerlinMaître des clésSinon fais moi passer ton document, avec Acrobat j’en aurai pour 2 minutes.
9 décembre 2024 à 13:54 #75274michel c.ParticipantJ’y suis arrivé pour la modification de la partie 1 du nom de champ (P1.P2.P3)
Par contre mon script ne fonctionne pas quand je souhaite “modifier” la partie 2 P2. J’ai une erreur à la ligne 28…
Merci
Attachments:
You must be logged in to view attached files.9 décembre 2024 à 17:13 #75277michel c.ParticipantIl y a un truc que je ne comprend pas. Mon script fonctionne mais il y a toujours un champ qui n’est pas renommé…
Attachments:
You must be logged in to view attached files.9 décembre 2024 à 19:15 #75280MerlinMaître des clés“Par contre mon script ne fonctionne pas quand je souhaite “modifier” la partie 2 P2. J’ai une erreur à la ligne 28…”
Vu le dernier exemple je crois que tu as compris l’erreur entre nom du script (qui importe peu) et nom de la fonction.
Attachments:
You must be logged in to view attached files.9 décembre 2024 à 19:17 #75282MerlinMaître des clés“Il y a un truc que je ne comprend pas. Mon script fonctionne mais il y a toujours un champ qui n’est pas renommé…”
Il est toujours très difficile d’examiner des scripts non commentés, même quand on sait ce qu’ils sont supposés faire.
J’y jetterai un deuxième regard demain à tête reposée.
10 décembre 2024 à 08:58 #75283michel c.ParticipantBonjour, je viens de commenter mon code :
function Renommer_c() {
//récuperer les noms de tous les champs
for (var i=0; i<this.numFields; i++) {
var nomChamp=this.getNthFieldName(i);
//déclarer la variable CaR (Champs à renommer)
var CaR = this.getField("nom_champ").value;
//décomposer les noms de champs en 3 parties séparées par les points : P1 ; P2 et P3
var b = nomChamp.split(".");
var P1 = (b[0]);
var P2 = (b[1]);
var P3 = (b[2]);
//Si l'on désire modifier la partie 1 et que la partie 1 correspond à l'entrée saisie dans le champ Name.3.1
if (this.getField("Menu").value == 1 && this.getField("Name.3.1").value == P1) {
//déclarer la variable P1new (nouveau nom pour la partie 1)
var P1new = this.getField("Name.3.2").value;
try{
//récupérer les paramètres des champs à renommer
var ts=this.getField(P1+"."+P2+"."+P3).textSize;
var tf=this.getField(P1+"."+P2+"."+P3).textFont;
var rct=this.getField(P1+"."+P2+"."+P3).rect;
var pg=this.getField(P1+"."+P2+"."+P3).page;
//créer des nouveaux champs P1new.P2.P3
var f=this.addField(P1new+"."+P2+"."+P3,"text",pg,rct);
f.textSize=ts;
f.textFont=tf;
//interrompre le code si erreur
}catch(e){break}
//supprimer les anciens champs P1.P2.P3
this.removeField(P1+"."+P2+"."+P3)
app.alert("Fait");
}
//Si l'on désire modifier la partie 2 et que la partie 2 correspond à l'entrée saisie dans le champ Name.3.1 et que la partie 1 correspond à la variable CaR
if (this.getField("Menu").value == 2 && this.getField("Name.3.1").value == P2 && CaR == P1) {
//déclarer la variable P2new (nouveau nom pour la partie 2)
var P2new = this.getField("Name.3.2").value;
try{
//récupérer les paramètres des champs à renommer
var ts=this.getField(P1+"."+P2+"."+P3).textSize;
var tf=this.getField(P1+"."+P2+"."+P3).textFont;
var rct=this.getField(P1+"."+P2+"."+P3).rect;
var pg=this.getField(P1+"."+P2+"."+P3).page;
//créer des nouveaux champs P1.P2new.P3
var f=this.addField(P1+"."+P2new+"."+P3,"text",pg,rct);
f.textSize=ts;
f.textFont=tf;
}catch(e){break}
//interrompre le code si erreur
//supprimer les anciens champs P1.P2.P3
this.removeField(P1+"."+P2+"."+P3)
}
}
}
Attachments:
You must be logged in to view attached files.10 décembre 2024 à 15:36 #75285michel c.ParticipantÉtrange le fonctionnement de ce script :
Lorsque je souhaite renommer la partie 1, il va fonctionner uniquement pour les 2nds indices (P3) ayant des valeurs paires.
Lorsque je souhaite renommer la partie 2 ; même chose, ça fonctionne que pour les 2nds indices ayant des valeurs paires….
10 décembre 2024 à 18:58 #75291MerlinMaître des clésJe n’ai pas le temps de tout bien vérifier mais a priori le problème vient du nom des champs (this.getField(“Name.3.1”) et this.getField(“Name.3.2”)) qui sont utilisés dans le script en nom absolu.
Comme ils rentrent dans la boucle leur nom est modifié pendant l’exécution de celle-ci et ça provoque des incohérences.
Ça l’est moins quand on utilise P1 mais c’est flagrant quand on utilise P2, le retour de la Console est sans appel :
TypeError: this.getField(…) is null
12:Document-Level:Renommer_c(dans “Test-4.pdf”, ligne 12 du script sans commentaire, ou ligne 15 du script commenté, voir capture)
Il faut donc soit les exclure de la boucle, soit modifier leurs noms de sorte qu’ils ne rentrent pas dans la boucle.
Attachments:
You must be logged in to view attached files.11 décembre 2024 à 08:57 #75293michel c.ParticipantMerci pour la réponse.
Pour palier à ce problème, j’ai déclaré 2 variables pour les valeurs des champs Name.3.1 et Name.3.2
Le problème est résolu pour la modification de la partie 1 mais ça ne change rien lorsque je séléctionne P2…
function Renommer_c() {
//récuperer les noms de tous les champs
for (var i=0; i<this.numFields; i++) {
var nomChamp=this.getNthFieldName(i);
//déclarer les variables
var aN = this.getField("Name.3.1").value;
var nN = this.getField("Name.3.2").value
var CaR = this.getField("nom_champ").value;
var Menu = this.getField("Menu").value;
//décomposer les noms de champs en 3 parties séparées par les points : P1 ; P2 et P3
var b = nomChamp.split(".");
var P1 = (b[0]);
var P2 = (b[1]);
var P3 = (b[2]);
//Si l'on désire modifier la partie 1 et que la partie 1 correspond à l'entrée saisie dans le champ Name.3.1
if (Menu == 1 && aN == P1) {
//déclarer la variable P1new (nouveau nom pour la partie 1)
var P1new = nN;
try{
//récupérer les paramètres des champs à renommer
var ts=this.getField(P1+"."+P2+"."+P3).textSize;
var tf=this.getField(P1+"."+P2+"."+P3).textFont;
var rct=this.getField(P1+"."+P2+"."+P3).rect;
var pg=this.getField(P1+"."+P2+"."+P3).page;
//créer des nouveaux champs P1new.P2.P3
var f=this.addField(P1new+"."+P2+"."+P3,"text",pg,rct);
//app.alert("Champ ajouté : "+P1new+"."+P2+"."+P3);
f.textSize=ts;
f.textFont=tf;
//interrompre le code si erreur
}catch(e){break}
//supprimer les anciens champs P1.P2.P3
this.removeField(P1+"."+P2+"."+P3)
//app.alert("Champ retiré : "+P1+"."+P2+"."+P3);
}
//Si l'on désire modifier la partie 2 et que la partie 2 correspond à l'entrée saisie dans le champ Name.3.1 et que la partie 1 correspond à la variable CaR
if (Menu == 2 && aN == P2 && CaR == P1) {
//déclarer la variable P2new (nouveau nom pour la partie 2)
var P2new = nN;
try{
//récupérer les paramètres des champs à renommer
var ts=this.getField(P1+"."+P2+"."+P3).textSize;
var tf=this.getField(P1+"."+P2+"."+P3).textFont;
var rct=this.getField(P1+"."+P2+"."+P3).rect;
var pg=this.getField(P1+"."+P2+"."+P3).page;
//créer des nouveaux champs P1.P2new.P3
var f=this.addField(P1+"."+P2new+"."+P3,"text",pg,rct);
//app.alert("Champ ajouté : "+P1+"."+P2new+"."+P3);
f.textSize=ts;
f.textFont=tf;
}catch(e){break}
//interrompre le code si erreur
//supprimer les anciens champs P1.P2.P3
this.removeField(P1+"."+P2+"."+P3)
//app.alert("Champ retiré : "+P1+"."+P2+"."+P3);
}
}
}
Attachments:
You must be logged in to view attached files.11 décembre 2024 à 10:22 #75295michel c.ParticipantNon en fait ça ne marche toujours pas même lorsque je sélectionne P1
11 décembre 2024 à 20:43 #75296bebarthMaître des clésbonjour,
J’ai mixé ton script avec le mien répondre rapidement à ton problème.function Renommer_c() {
var anciensChamps=[];
//récuperer les noms de tous les champs
for (var i=0; i<this.numFields; i++) {
var nomChamp=this.getNthFieldName(i);
//déclarer les variables
var aN = this.getField("Name.3.1").value;
var nN = this.getField("Name.3.2").value
var CaR = this.getField("nom_champ").value;
var Menu = this.getField("Menu").value;
//décomposer les noms de champs en 3 parties séparées par les points : P1 ; P2 et P3
var b = nomChamp.split(".");
var P1 = (b[0]);
var P2 = (b[1]);
var P3 = (b[2]);
//Si l'on désire modifier la partie 1 et que la partie 1 correspond à l'entrée saisie dans le champ Name.3.1
if (Menu == 1 && aN == P1) {
//déclarer la variable P1new (nouveau nom pour la partie 1)
var P1new = nN;
anciensChamps.push(P1+"."+P2+"."+P3);
renommerChamp (P1+"."+P2+"."+P3,P1new+"."+P2+"."+P3);
}
//Si l'on désire modifier la partie 2 et que la partie 2 correspond à l'entrée saisie dans le champ Name.3.1 et que la partie 1 correspond à la variable CaR
if (Menu == 2 && aN == P2 && CaR == P1) {
//déclarer la variable P2new (nouveau nom pour la partie 2)
var P2new = nN;
anciensChamps.push(P1+"."+P2+"."+P3);
renommerChamp (P1+"."+P2+"."+P3,P1+"."+P2new+"."+P3);
}
}
for (var j=0; j<anciensChamps.length; j++) this.removeField(anciensChamps[j]);
}
function renommerChamp (leNom,nouveauNom) {
try {
g = this.getField(leNom);
var leType=g.type;
var laPage=String(g.page);
var lesPages=laPage.split(",");
for (var p=0; p<lesPages.length; p++) {
var cettePage=Number(lesPages[p]);
if (lesPages.length>1) {
var nomChamp=leNom+"."+p;
} else {
var nomChamp=leNom;
}
g=this.getField(nomChamp);
var lesCoord=g.rect;
var f = this.addField(nouveauNom, leType, cettePage, lesCoord);
f = this.getField(nouveauNom);
for (var j in g) {
try {
if (typeof g[j] != "function" && j != "name" && j != "type" && j != "page" && j != "rect") {
f[j]=g[j];
}
} catch(e) {}
}
if (leType=="combobox" || leType=="listbox") {
var liste=new Array();
for (var k=0; k<g.numItems; k++) {
var valeur = g.getItemAt(k,false);
var valeurExport = g.getItemAt(k,true);
if (valeur==valeurExport) valeurExport="";
var element=[valeur,valeurExport];
liste.push(element);
}
f.setItems(liste);
f.currentValueIndices=g.currentValueIndices;
}
if (leType=="button") {
f.buttonSetIcon(g.buttonGetIcon());
f.buttonSetCaption(g.buttonGetCaption());
}
}
} catch(e) {app.alert("\nLe champ \""+leNom+"\"\rn'existe pas dans ce document.")}
}
@+
😎Attachments:
You must be logged in to view attached files.11 décembre 2024 à 20:52 #75298bebarthMaître des clés…en gros lorsque tu ajoutes un nouveau champ et que tu effaces l’ancien immédiatement cela modifie la numérotation des champs c’est pourquoi ils ne sont pas tous remplacés.
Alors que si tu rajoutes des champs sans supprimer les anciens immédiatement, la numérotation reste identique avec de nouveaux numéros à la fin. il faut donc créer tous les nouveaux avant de supprimer tous les anciens !Ai-je été compréhensible ???
@+
😎11 décembre 2024 à 21:54 #75299MerlinMaître des clésJ’ai passé un bon moment à chercher… et il me semblait bien qu’il y avait comme une évidence que je ne voyais pas !
😉
12 décembre 2024 à 11:05 #75300michel c.ParticipantJ’ai parfaitement compris. Mon code fonctionne parfaitement pour l’ajout des nouveaux champs. Par contre, je ne sais pas ou placer le code pour retirer les anciens…
J’ai testé en dehors des boucles try/catch mais ça ne fonctionne pas.
J’en ai profité pour optimiser un peu le script.
Il y a un truc que je souhaiterais faire également :
Si l’option P1 est sélectionnée et que la partie 1 du champ P1 = Q, je souhaiterais que les nouveaux champs crées soient placés au dessus des anciens (hauteur augmentée de la hauteur du champ) mais je ne sais pas si c’est faisable…
Merci
Attachments:
You must be logged in to view attached files.12 décembre 2024 à 19:53 #75302bebarthMaître des clésbonjour,
Voici les lignes pour pouvoir supprimer les anciens champs avec ton script :function Renommer_c() {
var anciensChamps=[];
for (var i=0; i<this.numFields; i++) {
var nomChamp=this.getNthFieldName(i);
var Menu = this.getField("Menu").value;
var CaR = this.getField("nom_champ").value;
var an = this.getField("AN").value;
var P1new = this.getField("NN").value;
var P2new = this.getField("NN").value;
var b = nomChamp.split(".");
var P1 = (b[0]);
var P2 = (b[1]);
var P3 = (b[2]);
if (Menu == 1 && an == P1) {
try{
var ts=this.getField(P1+"."+P2+"."+P3).textSize;
var tf=this.getField(P1+"."+P2+"."+P3).textFont;
var rct=this.getField(P1+"."+P2+"."+P3).rect;
var pg=this.getField(P1+"."+P2+"."+P3).page;
var f=this.addField(P1new+"."+P2+"."+P3,"text",pg,rct);
anciensChamps.push(P1+"."+P2+"."+P3);
f.textSize=ts;
f.textFont=tf;
}catch(e){break}
//this.removeField(P1+"."+P2+"."+P3)
}
if (Menu == 2 && an == P2 && CaR == P1) {
try{
var ts=this.getField(P1+"."+P2+"."+P3).textSize;
var tf=this.getField(P1+"."+P2+"."+P3).textFont;
var rct=this.getField(P1+"."+P2+"."+P3).rect;
var pg=this.getField(P1+"."+P2+"."+P3).page;
var f=this.addField(P1+"."+P2new+"."+P3,"text",pg,rct);
anciensChamps.push(P1+"."+P2+"."+P3);
f.textSize=ts;
f.textFont=tf;
}catch(e){break}
//this.removeField(P1+"."+P2+"."+P3)
//app.alert("Champ retiré : "+P1+"."+P2+"."+P3);
}
}
for (var j=0; j<anciensChamps.length; j++) this.removeField(anciensChamps[j]);
}
Ton script fonctionne correctement, par contre il ne duplique pas toutes les propriétés. Tu devrais plutôt t’inspirer du miens…
Pour ce qui est de ton autre problème ce n’est pas très compliqué, il suffit de créer le nouveau champ juste au dessus de l’ancien et de ne pas l’insérer dans la table des champs à supprimer si son nom est “Q”. J’essayerai de te faire ça demain !
@+
😎Attachments:
You must be logged in to view attached files.12 décembre 2024 à 20:27 #75304michel c.ParticipantMerci, effectivement ton script (test-6_BB.pdf) fonctionne bien mieux, je vais partir de cette base. Avec l’ancien, si les champs étaient de type liste déroulante, ils devenaient des champs textes après exécution du script.
Merci beaucoup.
J’essayerai demain de faire la petite modif que je souhaite
18 décembre 2024 à 09:08 #75318michel c.ParticipantJ’ai un autre souci….
Je compte me servir de ce fichier pour pouvoir créer plus rapidement des cours ou exercices “interactifs”
Grosso modo, j’ai des champs que les élèves doivent remplir. Ces champs sont les champs Q.a.b
Lorsque l’élève clique sur vérifier, la valeur de ces champs sont comparées à des champs R.a.b Si les valeurs sont identiques, alors la réponse est validée.
Jusqu’à présent, lorsque je crée mon document, je crée les champs Q.a.b puis je les copie et je renomme leurs copies une à une Q.a.b sera renommé en R.a.b
L’avantage de ce fichier est d’importer les champs Q.a.b et de les renommer en R.a.b en un seul clic.
Cela fonctionne très bien lorsque les champs sont de type texte, mais lorsqu’il s’agit de menus déroulants, quand je place les fichiers crées par le script, les réponses ne sont plus valides même lorsque les mêmes items ont été choisis pour les champs Q.a.b et R.a.b
J’espère que ce n’est pas trop confus.
Attachments:
You must be logged in to view attached files.18 décembre 2024 à 11:37 #75320MerlinMaître des clésDans renommer_champs_v01.pdf il n’y a pas de champs à renommer, et exercice_interactif-ok.pdf n’a pas été transféré car trop lourd.
Du coup on ne peut pas tester.
🙁
18 décembre 2024 à 19:09 #75321MerlinMaître des clésMichel C. très franchement j’admire ce que tu fais, à double titre.
D’une part le côté apprentissage technique du PDF-JavaScript et ses à cotés, et d’autre part la passion pédagogique et le cœur que tu mets à transmettre le savoir à tes élèves en utilisant des technologies qui les intéressent*.
Bravo et joyeuses fêtes (sans élèves).
*J’imagine que parmi tes élèves il y a un groupe de petits malins qui cherchent à cracker tes documents, si ça trouve il y en a d’inscrits sur ce forum ! 😉
18 décembre 2024 à 22:41 #75324michel c.ParticipantC’est curieux, j’ai essayé 2 fois de poster une réponse mais elle n’apparaît pas…A la 3ème tentative, j’ai ce message :
Erreur : réponse identique détectée ; il semble que vous l’ayez déjà dit.
Mais je ne vois pas ma réponse sur le forum.
Sinon, la voici en pièce jointe dans un pdf…
Attachments:
You must be logged in to view attached files.19 décembre 2024 à 12:55 #75326bebarthMaître des clésbonjour,
…et pareil que Merlin : félicitations pour ce que tu fais !Je n’ai pas bien suivi ces derniers jours, du coup tu en es où dans tes demandes ?
Si tu peux me repréciser ! Merci.@+
😎19 décembre 2024 à 20:36 #75332bebarthMaître des clésJe vais faire une petite vidéo si c’est trop confus…
Je veux bien car je ne suis pas certain de comprendre !
@+
😎19 décembre 2024 à 20:38 #7533319 décembre 2024 à 20:45 #75334michel c.ParticipantSinon pour résumer, lorsque je crée mes listes déroulantes Q.a.b (celles que les élèves vont utiliser pour saisir leurs réponses) je dois créer ensuite des listes R.a.b contenant les réponses exactes. Je copie colle les champs Q.a.b et je les renommais ensuite une à une en R.a.b
Lorsque je passe par le fichier renommer_champs_v01.pdf,
les listes sont renommées convenablement mais lorsque je copie-colle les champs R.a.b dans mon exercice interactif, le script de vérification qui compare les valeurs des champs Q.a.b avec R.a.b détecte toutes les réponses comme fausses alors que leurs valeurs sont les mêmes…
Attachments:
You must be logged in to view attached files.19 décembre 2024 à 20:47 #75336michel c.ParticipantJ’ai régulièrement des messages qui sont supprimés par le site. Peut-être que les liens vers mon site internet ne sont pas acceptés… Je passe par mon site pour poster des fichiers trop lourds. S’il faut passer par un hébergeur, par lequel dois-je passer?
Merci
19 décembre 2024 à 23:15 #75337MerlinMaître des clésJe n’ai pas trop de temps en ce moment car comme d’habitude tous les clients ont des urgences avant les vacances.
J’essaierai de trouver un peu de temps ce weekend.
En tout cas j’ai regardé ta vidéo et l’interface de PDF Expert m’a fait baver, tout est disponible directement à un seul clic dans le panneau des propriétés. Ça change d’Acrobat et de son interface des années 90 qui impose d’ouvrir plusieurs boites pour modifier une propriété !
“S’il faut passer par un hébergeur, par lequel dois-je passer?”
Voir : https://www.abracadabrapdf.net/forums/topic/envoyer-partager-poster-une-piece-jointe-volumineuse/
20 décembre 2024 à 11:39 #75338bebarthMaître des clésbonjour,
J’ai beaucoup mieux compris avec ta vidéo, et du coup je me suis aperçu qu’il y avait une erreur dans mon script (pour les menus déroulants et les listes).
Il faut supprimer une ligne de script :
...
if (leType=="combobox" || leType=="listbox") {
var liste=new Array();
for (var k=0; k<g.numItems; k++) {
var valeur = g.getItemAt(k,false);
var valeurExport = g.getItemAt(k,true);
// <----- Suppimer cette ligne
var element=[valeur,valeurExport];
liste.push(element);
}
f.setItems(liste);
f.currentValueIndices=g.currentValueIndices;
}
...
Je ne me souviens pas pourquoi je l’avais mise !!! Peut-être pour une application spécifique.
En tout cas cela fonctionne beaucoup mieux maintenant…@+
😎Attachments:
You must be logged in to view attached files.22 décembre 2024 à 09:45 #75349michel c.ParticipantMerci !
ça marche parfaitement
22 décembre 2024 à 19:39 #75350bebarthMaître des clésbonjour,
Tu pourrais aussi faire ça dans le même fichier !
function Renommer_c() {
//récuperer les noms de tous les champs
for (var i=0; i<this.numFields; i++) {
var nomChamp=this.getNthFieldName(i);
//décomposer les noms de champs en 3 parties séparées par les points : P1 ; P2 et P3
var b = nomChamp.split(".");
var P1 = (b[0]);
var P2 = (b[1]);
var P3 = (b[2]);
//Si l'on désire modifier la partie 1 et que la partie 1 correspond à l'entrée saisie dans le champ Name.3.1
if (P1=="Q") {
try {
this.removeField("R."+P2+"."+P3);
} catch(e) {};
renommerChamp ("Q."+P2+"."+P3,"R."+P2+"."+P3);
}
}
}
function renommerChamp (leNom,nouveauNom) {
try {
g = this.getField(leNom);
var laValeur=g.value;
var leType=g.type;
var laPage=String(g.page);
var lesPages=laPage.split(",");
for (var p=0; p<lesPages.length; p++) {
var cettePage=Number(lesPages[p]);
if (lesPages.length>1) {
var nomChamp=leNom+"."+p;
} else {
var nomChamp=leNom;
}
g=this.getField(nomChamp);
var lesCoord=g.rect;
var lesAutresCoord=[lesCoord[0],lesCoord[1]+30,lesCoord[2],lesCoord[3]+30];
var f = this.addField(nouveauNom, leType, cettePage, lesAutresCoord);
f = this.getField(nouveauNom);
for (var j in g) {
try {
if (typeof g[j] != "function" && j != "name" && j != "type" && j != "page" && j != "rect") {
f[j]=g[j];
}
} catch(e) {}
}
f.strokeColor=["RGB",0,147/255,0];
f.fillColor=color.white;
//f.display=display.hidden;
if (leType=="combobox" || leType=="listbox") {
var liste=new Array();
for (var k=0; k<g.numItems; k++) {
var valeur = g.getItemAt(k,false);
var valeurExport = g.getItemAt(k,true);
var element=[valeur,valeurExport];
liste.push(element);
}
f.setItems(liste);
f.currentValueIndices=g.currentValueIndices;
}
if (leType=="button") {
f.buttonSetIcon(g.buttonGetIcon());
f.buttonSetCaption(g.buttonGetCaption());
}
}
} catch(e) {app.alert("\nLe champ \""+leNom+"\"\rn'existe pas dans ce document.")}
}
@+
😎Attachments:
You must be logged in to view attached files.22 décembre 2024 à 20:35 #75352michel c.ParticipantJe n’osait pas le demander…C’est magique. Tu as même fait en sorte de ne pas re-créer les champs R.a.b s’ils sont déjà présents…
Je n’ai plus qu’à intégrer ça au menu admin. Mais ça je sais faire.
Un grand merci, ça va me faire gagner un temps précieux.
22 décembre 2024 à 20:42 #75353bebarthMaître des clésTu as même fait en sorte de ne pas re-créer les champs R.a.b s’ils sont déjà présents…
Dans mon script les champs R.a.b sont effacés s’ils existent (d’où le try) :
try {
this.removeField("R."+P2+"."+P3);
} catch(e) {};
avant d’être re-créés :
renommerChamp ("Q."+P2+"."+P3,"R."+P2+"."+P3);
@+
😎 -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.