Toutes mes réponses sur les forums
-
AuteurRéponses
-
bebarthMaître des clés
oui il faut modifier les valeurs dbch1 et dbch2 par la différence entre la longueur de “Template_BB” et “history”, c’est à dire 4 (lettres de différence) :
…
var dbch0=nmch.slice(0,5); //pour les pages dont le nom de champ commence par Page_
var dbch1=nmch.slice(11,16); //Préfixe pour history <10, les pages dont le nom de champ commence par Px.history.Page_
var dbch2=nmch.slice(12,17); //Préfixe pour history ?10 et <100, les pages dont le nom de champ commence par Pxx.history.Page_
…par contre je ne sais pas ce que sont les erreurs… j’espère que tu travailles sur des copies !
@+
:bonjour:bebarthMaître des clésbonjour,
1) Il faut retravailler un peu le script car dans mon exemple le modèle s’appelle “Template_BB”. Selon le nom de ton modèle (la longueur du nom en fait) il faut modifier nmch.slice(x,y)
2) Il faut également que le champ texte où s’affiche la pagination se nomme “Page_1”, “Page_2″…
essaye ça et tu me dis !
@+
:bonjour:bebarthMaître des clésbonjour,
voici le script que j’ai adapté :var nmch=””;
var dbch0=””;
var dbch1=””;
var dbch2=””;
for (var i = 0; i < this.numFields; i++)
{var nmch=this.getNthFieldName(i);
var dbch0=nmch.slice(0,5);
var dbch1=nmch.slice(15,20); //Préfixe pour Template_BB <10
var dbch2=nmch.slice(16,21); //Préfixe pour Template_BB ?10 et <100
if(dbch0==”Page_” | dbch1==”Page_” | dbch2==”Page_”)
{var f = this.getField(nmch);
var pg=f.page;
this.getField(nmch).value=””;
this.getField(nmch).value=”Page “+(pg+1)+”/”+this.numPages;}
}je l’ai placé sur le bouton de duplication de page plus en script d’ouverture de page de la première page.
si tu ne comprends pas, j’expliquerai plus en détail.
tu peux insérer jusqu’à 99 pages.
c’est la façon la plus simple que j’ai trouvé car le n’ai pas réussi à utiliser la fonction string.includes() pour tester que “Page_” est bien dans le nom du champ.
je vais me renseigner.
@+
:bonjour:bebarthMaître des clésbonjour,
Le dernier fichier que tu as envoyé est-il ce que tu a réussi à faire ou ce que tu souhaite faire ?
Si tu as réussi… :extra:
Si c’est ce que tu souhaites, la première réponse était la bonne : event.value=this.getField(“Nom du champ page 1”).value;
@+
:bonjour:bebarthMaître des clésbonjour,
il n’y a aucun script dans ce document !!!! et les données de la page 1 ne sont pas reportées sur les autres page…:Euuuh:
@+
:bonjour:bebarthMaître des clésbonjour,
Voici un script adapté d’un ancien que j’avais déjà écris. Il devra être placé en action donc en local et ne sera donc pas utilisable par un utilisateur avec Adode Reader.var Chemin = this.path;
var PathSansExt = Chemin.substring(0,Chemin.length-4)
// Nouveau document
var newDoc = app.newDoc();
//Pages insérées
newDoc.insertPages({
nPage: 0,
cPath: this.path,
nStart: 1, //0-based première page insérée, ici deuxième page
nEnd: 2 //0-based dernière page insérée, ici troisième page
});
//Suppression de la première page lors créée avec le nouveau document
newDoc.deletePages(0);
//Enregistrement
newDoc.saveAs(PathSansExt+”_Pages 2&3.pdf”);Pour des raison de sécurité, certaines commandes ne sont pas accessibles avec Adobe Reader :
http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#rhsyns=%20&t=Acro12_MasterBook%2FJS_API_AcroJSPreface%2FQuick_bars.htm&rhsearch=superscriptet c’est le cas pour extractPages ou insertPages (availability X: The property or method is not allowed in Adobe Reader but is available in Acrobat Pro and Acrobat Standard).
@+
:bonjour:8 juin 2016 à 08:59 en réponse à : Comment activer les fonctions supplémentaires sur plusieurs documents ? #60813bebarthMaître des clés…moi pour ce genre d’opérations, j’utilise un vieux Quickeys, qui n’était pas gratuit mais qui fonctionne toujours !
http://startly.com/products/quickeys/mac/4/
je crois qu’il existe/existait une version pc.
:bonjour:8 juin 2016 à 06:36 en réponse à : Comment activer les fonctions supplémentaires sur plusieurs documents ? #60811bebarthMaître des clés…j’avais pensé à une action, mais ce format d’enregistrement n’est pas disponible en action !!!
y aurait-il une restriction sur cette fonction ?
Seul Merlin pourra répondre à ce sujet, a priori.
:bonjour:bebarthMaître des clésbonjour,
Pour cet exemple, il faut utiliser un champ texte enrichi, en lecture seule.
L’enrichissement de texte en javascript n’est pas ce qu’il y a de plus simple. Je te conseille d’aller jeter un oeil sur cette page :
http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#rhsyns=%20&t=Acro12_MasterBook%2FJS_API_AcroJS%2FSpan_properties.htm%23TOC_superscriptbc-8&rhsearch=superscript&rhtocid=_6_1_8_72_0_7
Le fichier joint répond juste à ta demande (du moins je l’espère), mais il est également possible d’améliorer les champs de données (civilité, nom en majuscules, formats de date…).
@+
:bonjour:bebarthMaître des clésbonjour,
tu mets les champs en pages 2 et 3 en “lecture seule”, et en script de calcul tu mets :
event.value=this.getField(“Nom du champ page 1”).value;
essaye et tu nous dis si tu n’y arrive pas. tu peux joindre un fichier exemple…
@+
:bonjour:bebarthMaître des clésoui, c’est pour cela qu’avec le script ci-dessous ça fonctionne très bien alors que si l’on veut utiliser this.pageNum pour le numéro de page, ça ne fonctionne pas !
:bonjour:bebarthMaître des clésthis.numPages change automatiquement et sans problème.
comme je rajoute à chaque fois une page à la fin du document, c’était juste pour tester le nom du champ et numéro de page uniquement sur la dernière page.
je vais donc lancer le script sur la totalité du document uniquement lorsque je rajoute une page, et non en propriété de page comme je le prévoyait précédemment.
merci.
:bonjour:bebarthMaître des clésbonsoir,
Voici ce que j’ai trouvé :
Tous mes champs de bas de pages se nomment “Bas de page…” donc je recherche tous les noms de champs qui commencent par “Bas” et donne la valeur souhaitée à ces champs.var nmch=””;
var dbch=””;
for (var i = 0; i < this.numFields; i++)
{var nmch=this.getNthFieldName(i);
var dbch=nmch.slice(0,3)
if(dbch==”Bas”)
{var f = this.getField(nmch);
var pg=f.page;
this.getField(nmch).value=”Page “+(pg+1)+”/”+this.numPages;}
}Ce qui m’embête un peu (mais sans plus…), c’est que this.getNthFieldName vérifie tous les noms de champs du document. ne serait-il pas possible de rechercher uniquement sur la page courante ?
Merci.
:doute:bebarthMaître des clésIl faut faire un lien au fichier mondoc.pdf#page=x avec x = numéro de la page en absolue.
@+
:bonjour:bebarthMaître des clésbonjour Merlin,
j’ai bien compris, mais il faudrait également changer le nom du champ dans le script d’ouverture de page…
this.getField(“Bas de page.0”).value =…
this.getField(“Bas de page.1”).value =…
this.getField(“Bas de page.2”).value =…
…
et ça je ne sais comment faire !
@+
:bonjour:bebarthMaître des clésbonjour,
voici un fichier pdf réaliser à partir du fichier original sur Word Mac.
l’image ne présente pas de défaut, sauf en affichage avec des échelles genre 95,9% ou l’image est un peu biscornue, mais ça c’est général pour tous les pdf.
@+
:bonjour:bebarthMaître des clésBonsoir Merlin
et merci pour ta réponse qui malheureusement donnait le même résultat.
Après quelques temps de réflexion :doute: j’ai écris le script :
this.getField(“Bas de page”).value =”Page “+(this.pageNum+1)+”/”+this.numPages;
en script d’ouverture de page dans les propriétés de la page. Et là, ça fonctionne… à l’écran parce qu’à l’impression tous les bas de pages sont identiques (normal vu le nom du champ est identique).
J’ai donc essayé avec des noms ce champs différents (Bas de page_1, Bas de page_2,…). Et ça fonctionne maintenant très bien en impresssion également sur mon document original qui ne comporte que 4 pages. Mais j’ai une page modèle, donc possibilité d’ajouter de nouvelles pages. Le script de pagination aura donc le même nom de champ que la page modèle… retour à la case départ. Pour chaque nouvelle page, il faudrait modifier le nom du champ et le script d’ouverture de page :Euuuh:
Si tu as une idée, je suis preneur !
merci.
:bonjour:bebarthMaître des cléseffectivement, ça n’a pas l’air de fonctionner non plus sur mon iPhone, mais ça je ne sais pas dire les compatibilités avec les applications pour mobiles !!!!
:Euuuh:bebarthMaître des clés1) tu créé ton modèle avec le script this.spawnPageFromTemplate(« NOM_DU_MODELE »); accessible par un bouton, un signet ou une action (dans mon exemple c’est this.spawnPageFromTemplate(“Template_BB”); (ça ne fonctionne pas avec les guillemets à la française).
2) tu lance le script, ce qui te crée une seconde page identique à la première avec P1… avant chaque nom de champ.
3) tu sélectionne la page 1 et tu vas dans l’outils Modèle de page, puis tu clique sur l’oeil de manière à la faire disparaitre.
4) ton modèle est créé, la page initiale (sans préfixe devant les noms de champs) à disparu : Template_BB3.pdf
A chaque fois que tu appelles le modèle, il est créé avec les valeurs enregistrées sur ton modèle… ces valeurs peuvent être différente pour chaque page vu qu’il y a un préfixe différent sur chaque page.
Par contre, en ce qui concerne les opérations entre champs, je pense qu’il faut les refaire à chaque fois car (après essai) elles sont toujours relatives aux champs du modèle…Merlin, y a-t-il une solution pour que les oprérations se dupliquent avec les champs relatifs à chaque pages ???
@+
:bonjour:bebarthMaître des clésbonjour,
En fait, je ne suis pas certain d’avoir compris ce que tu n’as pas compris… :Euuuh:
Lorsque tu es dans la fenêtre Modèle de page, il faut cliquer sur l’oeil qui est dans la case à côté de ton modèle pour le faire disparaitre. La page modèle disparait également !En ce qui concerne le champ texte dynamique, je ne dis pas que c’est impossible, mais ce doit être assez compliqué !
J’ai regardé vite fait, mais ne trouve pas de flag indiquant que le texte déborde du champ. Il doit pourtant y en avoir un puisqu’on peut faire défiler les longs textes ou afficher sur plusieurs lignes. Mais est-il accessible ??? :doute:
@+
:bonjour:bebarthMaître des clés…
Le champ (de type texte) ou va s’afficher le nom va, lui, se nommer AfficheNom
Dans ce champ, en “Calcul”, il faut mettre en “script de calcul personnalisé” :
this.getField(“AfficheNom”).value = this.getField(“MenuNom”).value
Ne pas oublier, dans l’aspect de ce champ, de le mettre en “Lecture seule” car je suppose que l’utilisateur ne doit pas pouvoir modifier le nom affiché.
…bonjour,
En script de calcul du champ “AfficheNom” il faut mettre :
event.value=this.getField(“AfficheNom”).value+”, “+this.getField(“MenuNom”).value;
Mais attention, ça c’est dans le principe parce qu’à chaque fois qu’on va sélectionner un élément dans la liste, il va se rajouter au champ texte…
@+
:bonjour:bebarthMaître des clésbonsoir,
non, pas d’optimisation pour moi.
perso j’aurais mis “this.getField(“Reduc”).richText = true;” dans le script, mais comme “Autorisé le format RTF” est coché, ça fonctionne.
tu peux aussi enrichir le texte à ta guise comme indiqué dans le lien ci-dessous.
@+
:bonjour:bebarthMaître des clésbonjour,
Tu commences par mettre tes 2 champs en lecture seule, ensuite tu changes éventuellement leur état en même temps que chaque calcul.
Par exemple pour le champs StressLVEDV:
…
if(partieEntiere<=0) {partieEntiere="";}
this.getField(“StressLVEF”).value = partieEntiere;
this.getField(“StressLVEFDec”).value = Math.round(10*(calculDecimal-partieEntiere));
this.getField(“StressLVEF”).readonly = false;
this.getField(“StressLVEFDec”).readonly = false;
} else {
this.getField(“StressLVEF”).value = “”;
this.getField(“StressLVEFDec”).value = “”;
this.getField(“StressLVEF”).readonly = true;
this.getField(“StressLVEFDec”).readonly = true;
}Attention, le fichier joint fonctionne mais n’ai certainement pas ton dernier fichier…
@+
:bonjour:bebarthMaître des clésbonjour,
Je ne sais pas ce que tu veux faire exactement. voici un lien qui pourra t’aider :
http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#rhsyns=%20&t=Acro12_MasterBook%2FJS_API_AcroJS%2FSpan_properties.htm%23TOC_superscriptbc-8&rhsearch=superscript&rhtocid=_6_1_8_72_0_7
et un fichier joint de l’exemple.
@+
:bonjour:27 mai 2016 à 08:05 en réponse à : Lier les choix possible d’une liste déroulante à une deuxième. RÉSOLU #50516bebarthMaître des clésbonjour,
d’après ce que je comprends, tu veux aplatir le formulaire ! c’est cela ???
pour aplatir tous le champs du fichier, la commande est :
this.flattenPages();
on peut aplatir certaines pages d’un fichier par contre, je ne pense pas que l’on puisse aplatir uniquement certains champs d’une page.
@+
:bonjour:bebarthMaître des clésbonjour,
pour une novice, tu n’as pas choisi le plus simple !!!
voici le lien d’un post avec un script d4alex qui pourrait être intéressant.
http://abracadabrapdf.net/forum/index.php/topic,2615.msg14162.html#msg14162Merlin,
est-ce que ce script pourrait-être adaptable ? perso, je n’ai pas réussi pour l’instant.@+
:bonjour:bebarthMaître des clés…ici les valeurs sont des nombres, il faut donc supprimer les guillemets :
if (this.getField(“StressLVEDViDec”).value = 10)
{
event.value = partieEntiere3+1;
this.getField(“StressLVEDViDec”).value = 0
}Mais pourquoi this.getField(“StressLVEDViDec”).value = 10, ne serait-ce pas plutôt this.getField(“StressLVEDViDec”).value >= 10 ???
@+
:bonjour:bebarthMaître des clésbonjour,
je n’ai pas le temps de me plonger complètement dans tous tes scripts et calculs, mais après un premier coup d’oeil je me demande si ta valriable “partieEntiere” utilisée dans les calculs précédents doit être la même pour les champs “BSAwhole”, “BSAdecimal” et “StressLVEDVi”. j’ai modifié les variables de ces champs en “partieEntiere1”, “partieEntiere2” et “partieEntiere3” et le résultat semble correct.
reste à savoir une de ces variables doit être commune pour plusieurs champs.
@+
:bonjour:bebarthMaître des clésbonjour,
en script de touche personnalisé il faut indiquer :var regxp=/^[0-9:]$/;
if (event.willCommit==false)
{
if (event.change.length>0 && regxp.test(event.change)==false)
{
app.beep();
event.rc=false
}
}@+
:bonjour:bebarthMaître des clésvoici ce que je te propose pour le champ cts :
if (this.getField(“cts”).value ==””) this.getField(“cts”).value =”00″
else {if (parseInt(this.getField(“cts”).value)<10) this.getField("cts").value =this.getField("cts").value+"0"}@+
:bonjour:bebarthMaître des clésbonjour,
Je ne comprends pas bien l’utilité. Il suffirait de mettre un 0 dans le fichier original, ensuite lorsqu’on accède au champ avec une tabulation le “0” est sélectionné automatiquement et peut être modifié.
Sinon, il faut mettre en script d’action, champ désactivé :
if (this.getField(“Prix”).value ==””) this.getField(“Prix”).value =0;
pour le champ prix par exemple, et un zéro s’affichera si la valeur du champ a été supprimée.
@+
:bonjour:bebarthMaître des clésSi j’ai compris, ça devrait donner quelque chose comme ça !!!
Bon weekend & @+
:bonjour:bebarthMaître des clésthis.resetForm();
c’est tout à fait ce que je voulais !
merci.
:bonjour:bebarthMaître des clésMerlin,
sais-tu remettre toutes les valeurs des champs à 0 au lieu de les faire une par une comme dans le bouton RESET !
ici ça va bien qu’il n’y en pas pas trop…
merci.
:bonjour:bebarthMaître des clésbonjour,
ci-joint le fichier avec les scripts qui correspondent à ceux du fichier original.
en espérant que ça te convienne !
@+
:bonjour:bebarthMaître des clésbonjour,
je pense qu’il faudrait écrire quelque chose comme ça :
if (this.getField(“NOM DU CHAMP”).value ==””) {…script à exécuter…};
@+
:bonjour:bebarthMaître des clés…petite erreur, il fallait écrire
if (ckWord.charCodeAt(0)>=65 & ckWord.charCodeAt(0)<=90)
et non …ckWord.charCodeAt(0)<=68). je ne sais pas d'où j'ai sorti le 68 !!!
j’ai corrigé la ligne dans le script entier.
@+
:bonjour:bebarthMaître des clés:extra:
j’avais pas du tout compris ça ! je pensais que Nawel.CPA voulait construire un menu déroulant à partir d’autres champs (X, A, B…)
+@
:bonjour:bebarthMaître des clésbonjour,
désolé mais ce n’est pas très clair !!! il faudrait un peu plus d’explications…
@+
:bonjour:bebarthMaître des clés:bravo:
si tu veux connaitre le temps exact d’exécution du script, tu places avant ton scipt :console.show();
console.clear();
//debut duree
d0=new Date();
debut=util.printd(“dd-mm HH:MM”,d0)
console.println(“Début du process:”+debut)et après ton script :
//fin duree
df=new Date();
fin=util.printd(“dd-mm HH:MM”,df)
console.println(“Fin du process:”+fin)
delta=(df.valueOf()-d0.valueOf())/1000/60
console.println(“Durée du process:”+delta+” minutes”)@+
:bonjour:bebarthMaître des clésbonjour,
Il faudrait donner un peut plus d’information sur le logiciel utilisé et sous quel OS.
dans un premier temps, voici l’adaptation d’un script que j’avais écris et qui listera dans la console tous les mots commençant par une capitale.
l’indication de la durée du process peut être interressant pour des documents volumineux.var nbmots = 0;
console.show();
console.clear();
//debut duree
d0=new Date();
debut=util.printd(“dd-mm HH:MM”,d0);
console.println(“Début du process:”+debut);
//Changement de page
for (var p = 0; p < this.numPages; p++)
{
console.println(“*** Page “+(p+1)+” ***”);
var numWords = this.getPageNumWords(p);
for (var i=0; i{
var ckWord = this.getPageNthWord(p, i, true);
//Recherche première lettre en majuscule
if (ckWord.charCodeAt(0)>=65 & ckWord.charCodeAt(0)<=90)
{
console.println(ckWord);
nbmots = nbmots+1;
}
}
}
console.println(“*** “+nbmots+” mots trouvés commençant par une majuscule”)
//fin duree
df=new Date();
fin=util.printd(“dd-mm HH:MM”,df);
console.println(“Fin du process:”+fin);
delta=(df.valueOf()-d0.valueOf())/1000/60;
console.println(“Durée du process:”+delta+” minutes”);@+
:bonjour:bebarthMaître des clésessaye de rajouter :
this.closeDoc(true);
@+
:bonjour:bebarthMaître des clés:Euuuh:
…pour moi, il n’y a pas de boîte de dialogue, et même, si le fichier .fdf existe déjà, il est remplacé sans avertissement !!!http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#rhhlterm=this.exportAsFDF&rhsyns=&t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23XREF_71999_exportAsFDFStr
ici, il est indiqué pour cPath : “If the parameter is omitted, a dialog box is shown to let the user select the file.”
peut-être encore une histoire de privilèges Windows ???
:doute:bebarthMaître des clésEdit2 : A chaque export de FDF, adobe me demande si je veux enregistrer le PDF à exporter, comment éviter l’apparition de ce message et ainsi enchaîner les actions ?
il faut décocher “Demander à l’utilisateur”.
@+
:bonjour:bebarthMaître des clés:extra:
lorsque tu lances l’action, tu cliques sur la petite flèche à côté de Ajouter des fichiers…
soit tu ajoutes des fichiers, soit un dossier.
@+
:bonjour:bebarthMaître des clésbebarthMaître des clésBonjour,
effectivement, dans la définition du Safe path il est indiqué “A path cannot point to a system critical folder, for example a root, windows or system directory. A path is
also subject to other unspecified tests.”
peux-tu essayer à partir d’un répertoire sur ton bureau par exemple !
@+
:bonjour:bebarthMaître des clésBonjour,
Alors là… personnellement je ne pense pas que cela soit possible, mais à mon avis, mieux vaut attendre la réponse de Merlin !
De quel logiciel disposez-vous : Adobe Reader ou Acrobat ? …et en plus j’imagine que vous ne voulez pas ouvrir chaque fichier !!!
@+
:doute:bebarthMaître des clésbonsoir,
Es-tu certain que rien ne se passe ??? la première fois que j’ai lancé le script j’ai également eu l’impression que rien ne se passait mais le fichier fdf avait bien été créé.
N’étant pas un spécialiste Windows, je ne sais pas très bien la syntaxe pour le chemin d’un fichier. Ce que je te propose, c’est de la vérifier. Tu ouvres un fichier pdf que tu auras placé dans ton répertoire, puis tu lance ce script (depuis une action) :console.show();
console.clear();
console.println(“Le chemin est : “+ this.path)La console va te donner le chemin exact de ce fichier… et tu pourras vérifier si la syntaxe C/temp/… est correcte.
@+
:bonjour:bebarthMaître des clésbonjour,
je prends la discussion en cours et comme je n’ai pas tout suivi j’espère que les scripts ci-dessous conviendront… ici je suppose que le fichier fdf est enregistré dans le même répertoire que le fichier pdf d’origine.
je ne suis pas spécialiste en import/export :Smiley03: mais Merlin, je ne comprends pas pourquoi tu mets le nom du fichier en “array” ??? peut-être y a-t-il une explication ???Attention : les scripts assument qu’il n’y a qu’un seul point dans les noms de fichiers (devant le suffixe, comme il se doit).
…pour ma part, je modifie uniquement l’extension…
Pour l’exportation (testé sur mon mac et ça marche) :
// Récupération du chemin
var Chemin = this.path;
// modification de l’extension
var Pathfdf = Chemin.substring(0,Chemin.length-3) + “fdf”;
// exporte les données avec le même nom mais avec le suffixe FDF
this.exportAsFDF({cPath: Pathfdf});Pour l’importation (testé sur mon mac et ça marche) :
// Récupération du chemin
var Chemin = this.path;
// modification de l’extension
var Pathfdf = Chemin.substring(0,Chemin.length-3) + “fdf”;
// importe les données à partir du chemin d’accès complet
this.importAnFDF({cPath: Pathfdf});@+
:bonjour:bebarthMaître des clésbonsoir,
voici un nouveau fichier. j’espère avoir placé les nouvelles cases au bon endroit…
@+
:bonjour:bebarthMaître des clésbonsoir,
voici un nouveau fichier avec une quantité mini limitée à 0 et un champ qui calcule (QTE3 – QTE2)*QTE1 pour exemple.
la valeur d’un champ est this.getField(“NOM DU CHAMP”).value, ensuite on peut effectuer toutes les opérations et opérateurs javascript (par exemple : https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Expressions_et_Op%C3%A9rateurs
@+
:bonjour:bebarthMaître des clésbonjour,
ci-joint un fichier avec les scripts sur les flèches. n’y a-t-il pas de quantité mini et maxi ???
@+
:bonjour:bebarthMaître des clésbonjour,
si j’ai bien compris, c’est le grisé de la cellule en bas à droite !!! ce sera effectivement du bidouillage…
sur Acrobat 9, il faut aller dans le menu Outils/Modifications avancées/Retouche d’objet, puis sélectionner les différente parties grisées et les supprimer.
ci-joint sont des copies d’écran sur ios mac, mais je suppose que ce sont les mêmes menus sous windows.
@+
:bonjour:bebarthMaître des clésbonjour,
comme on dit, j’arrive un peu après la bataille… mais voici ce que je propose : inverser les pages 2 et 3, imprimer les pages 1 à 2 puis remettre les pages 2 et 3 dans le bon ordre.
je ne sais pas si les pages sont réellement inversées ou si c’est juste une indexation des pages (Merlin ???) mais l’action s’exécute très rapidement même sur un document avec beaucoup de pages !
…plus l’alerte d’impression pour n’imprimer qu’une fois.
@+
:bonjour:if (impression == “”)
{
this.movePage(2,0);
this.print(false,0,1);
this.movePage(2,0);
var impression = 1;
}
else app.alert(“Les pages 1 et 3 ont déjà été imprimées.”,3);26 avril 2016 à 12:47 en réponse à : Afficher/masquer plusieurs champs texte selon choix ds menu déroulant #60571bebarthMaître des clés…j’avais pas vu qu’avec le document original il y avait déjà l’erreur… je pensais que c’était uniquement dans celui que j’ai modifié vu que j’ai une variable “f” !!!
les champs res1 et res2 effectuent un calcul avec d’autres champs qui n’existent pas…
:Euuuh:26 avril 2016 à 12:42 en réponse à : Afficher/masquer plusieurs champs texte selon choix ds menu déroulant #60570bebarthMaître des clésMerlin,
moi j’ai juste “TypeError: f is null” qui s’affiche 2 fois de suite, mais je ne comprend pas non plus pourquoi vu que f n’est ni vide ni nul…
si Alex passe par là, il pourra peut-être expliquer !
:bonjour:26 avril 2016 à 06:27 en réponse à : Afficher/masquer plusieurs champs texte selon choix ds menu déroulant #60568bebarthMaître des clésbonjour,
je ne suis pas certain d’avoir complètement compris ce que vous désirez au final, mais vous trouverez dans le fichier joint ce que je vous propose en script de calcul.
@+
:bonjour:bebarthMaître des clésbonjour,
…je ne pense pas (Merlin confirmera on infirmera) ! on peut changer la couleur générale de la surbrillance avec app.runtimeHighlightColor = color.red par exemple, sinon il faut désactiver la surbrillance et mettre une légère couleur de fond au champ comme indiqué ci-dessous, par exemple :
event.target.fillColor = event.value > 5 ? [“RGB”,255/255,195/255,0] : [“CMYK”,0.15,0,0,0]; pour un fond à 15% de cyan
@+
:bonjour:bebarthMaître des clésbonjour,
…je ne pense pas (Merlin confirmera on infirmera) ! on peut changer la couleur générale de la surbrillance avec app.runtimeHighlightColor = color.red
sinon il faut désactiver la surbrillance et mettre une légère couleur de fond au champ comme indiqué ci-dessous, par exemple :
event.target.fillColor = event.value > 5 ? [“RGB”,255/255,195/255,0] : [“CMYK”,0.15,0,0,0]; pour un fond à 15% de cyan
@+
:bonjour:bebarthMaître des clésmerci Alex pour ces précisions ! :bravo:
j’avais précisé “…à suite de votre script, mais il peut être placé autre part…” car j’avais bien compris qu’il fallait cliquer sur la case pour que le script s’effectue.
:bonjour:bebarthMaître des clés…voici ce que j’ai fait à la suite de votre script, mais il peut être placé autre part…
merci à Alex pour son script dont je me suis grandement inspiré !
:bonjour:bebarthMaître des cléssi vous désactivez la surbrillance (avec le bouton “Sélect. les champs existants” il faudrait mettre un léger fond bleu… au lieu de color.transparent mettre [“CMYK”,0.15,0,0,0] pour un fond à 15% de cyan.
:bonjour:bebarthMaître des clésPour commencer, je renommerais tes champs avec des noms plus simples comme “TEMPO” et “Cliquez” (par exemple).
Dans le script du bouton “TEMPO”, tu supprimes la ligne event.target.hidden=true et tu place this.getField(“Cliquez”).display=display.hidden; au début du script si tu veux enregistrer ton fichier avec l’autre bouton non visible !!!
Pour le bouton “Cliquez” il faut faire la même chose en changeant juste le nom du champ this.getField(“TEMPO”).display=display.hidden;
je n’ai pas regarder le reste des scripts !
@+
:bonjour:bebarthMaître des clésbonjour,
…”supprimer”, le bouton et il n’existe plus !!! Mais il y a plusieurs états pour “masquer” un bouton :
Field is visible on screen and in print display.visible
Field is hidden on screen and in print display.hidden
Field is visible on screen but does not print display.noPrint
Field is hidden on screen but prints display.noViewensuite il y a plusieurs raisonnement pour votre problème. soit vous en avec juste quelques un et vous pouvez les cibler, soit faire une recherche par types de boutons… etc.
si vous n’y arrivez pas, vous pouvez poster un fichier exemple.
@+
:bonjour:bebarthMaître des clésbonjour,
voici ce que je proposerais en script de validation :
pour le champ Valeur1
event.value > 5 ? this.getField(“FdOR”).fillColor=[“RGB”,255/255,195/255,0] : this.getField(“FdOR”).fillColor=color.transparent;
pour le champ Valeur2
event.target.fillColor = event.value > 5 ? [“RGB”,255/255,195/255,0] : color.transparent;
j’espère que vous comprenez un peu le raisonnement… je joint votre fichier avec les scripts.
@+
:bonjour:bebarthMaître des clésbonjour,
je vous conseille d’aller voir cette article :
http://abracadabrapdf.net/forum/index.php/topic,2868.msg16200.html#msg16200
où alex donne une solution qui répondra certainement à votre attente.
@+
:bonjour:bebarthMaître des clés…comme hydro parlait de “event.target.hidden=true” j’ai supposé qu’il voulait masquer les boutons, mais ce n’est qu’une supposition…
:doute:bebarthMaître des clésbonjour,
quel(s) genre(s) de bouton(s) à effacer ???
pour les “”checkbox”, essayez ce script :var count = 0;
for ( var i=0; ivar fname = this.getNthFieldName(i);
if (this.getField(fname).type == “checkbox” ) count++; }
this.getField(fname).display = display.hidden);@+
:bonjour:bebarthMaître des clésbonjour Merlin,
j’ai utilisé la partie de ton script pour créer un nouveau document et dupliquer les pages, que j’ai intégré au script que j’avais écris.
ton script coupe les planches en 2 alors que alors que mon problème était de rogner au niveau des hirondelles.
je joins un fichier action avec le script final si cela intéresse quelqu’un.
encore merci & @+.
:geek:bebarthMaître des clésplacé en action, ton script fonctionne très bien.
il faut supprimer les lignes “app.beginPriv();” et “app.endPriv();”
je pense que si l’on modifie le script de document, ça doit fonctionner également…
@+
:extra:bebarthMaître des clésj’ai testé le début du script avec une action et ça fonctionne très bien de créer un nouveau fichier et dupliquer chaque page.
je pense qu’en combinant les 2 scripts je devrais m’en sortir.
je te tiens au courant.
merci
:extra:bebarthMaître des clésBonjour Merlin et merci pour ta réponse.
j’ai placé le fichier dans le dossier javascript, mais cela ne fonctionne pas. j’ai une erreur interne lorsque je lance le script.
j’ai regardé vite fait mais pour l’instant je n’ai pas vu d’où ça peut venir… par contre, le script ressemble à ce que j’ai écris. je regarderai ça plus précisément demain…
j’ai par contre une question que je me pose ! dans mons script je redéfini la taille de la Media Box avec :
this.setPageBoxes({
cBox: “Media”,
rBox: [0, height, largeur, 0],
});
je pensais que toutes les données en dehors de cette zone serait perdues afin de diminuer la taille du fichier final, mais ça n’a pas l’air d’être le cas. la taille du fichier ne diminue pas.
sais-tu quelque chose à ce sujet ?
merci.
:bonjour:bebarthMaître des clés:bravo: :bravo: , pareil…
20 novembre 2015 à 18:16 en réponse à : Importer & redimensionner automatiquement une image dans un champs de formulaire #59999bebarthMaître des clésbonjour,
il faut régler la mise à l’échelle sur “Toujours” après avoir appuyer sur le bouton “Avancées…”.
@+
:bonjour:bebarthMaître des clésMerci Alex, je vais étudier ça !
@+
:priere:bebarthMaître des clésBonjour,
pour quel OS et quelle version de Word ?
si vous êtes sous Windows (ce que j’ai l’impression…), avez-vous réglé le format de page pdf dans les options d’impression de l’imprimante pdf ???
votre format 22 x 28 c’est le format US letter (8.5 x 11 pouces -> 215,9 x 279,4) ???
@+
:bonjour:bebarthMaître des clés…et donc if(!event.willCommit) signifie : si l’événement n’est pas une frappe (clavier)…
correct ?
:Euuuh:bebarthMaître des clésMerci Merlin !
je savais pour les opérateurs de comparaison mais ne comprenais pas avec “event”.
@+
:geek:bebarthMaître des clésre-bonjour,
j’ai un peu regardé les exemples dans le js_api_reference, mais ne comprends pas la différence entre
if(!event.willCommit)
et
if(event.willCommit)-> le point d’exclamation.
:Euuuh:
bebarthMaître des clésbonjour,
je voudrais juste signaler à Alex que dans son fichier exemple, la console n’indique pas le choix sélectionné, mais le précédent…
je suis bien évidemment incapable comme ça de modifier le script !
@+
:bonjour:bebarthMaître des clés:extra:
je vais essayer de comprendre l’événement…
:priere:bebarthMaître des clésMerci pour l’info !
:bonjour:bebarthMaître des clés:bravo:
vous êtes trop rapides tous les deux !!!
je joints quand même ce que j’ai fait, pour commentaires éventuels… (je sais que j’ai du mal avec les “event”).
merci.
:bonjour:9 novembre 2015 à 14:18 en réponse à : Remplissage champ par autre champ lors de l’appui sur bouton #59956bebarthMaître des clésbonjour,
il suffit d’écrire :
this.getField(“Champ2”).value = this.getField(“Champ1”).value
c’est tout !!!
…et si vous affichez la console, vous verrez que “this.getfield” n’est pas une fonction contrairement à “this.getField”…
@+
:doute:bebarthMaître des clésBonjour,
… C’est automatique lorsque l’on créée une table des matières dans Word et qu’on convertit en PDF avec Word.
Générer les signets est automatique si on le demande dans les préférence et uniquement sur PC, par contre on ne règle pas l’ouverture du document en mode signets sous Word.
@+
:bonjour:6 novembre 2015 à 07:38 en réponse à : Verrouillage de plusieurs champs sauf certains suite à action sur bouton #59902bebarthMaître des clésBonjour,
si l’on doit garder le nom des champs pour l’extraction des données, je présume qu’on peut modifier le nom des boutons validation/dévalidation ! on a plus qu’à s’occuper des champs dont le nom commence par “Appréciation” (pourquoi s’occuper des autre champs ???).
2 solutions : si l’on a peu de champs on peut les traiter un par un (ici 4 champs), sinon on fait une recherche uniquement sur les champs dont le nom commence par “Appréciation”.
for (var i = 0; i < this.numFields; i++) {
var f = this.getNthFieldName(i);
if (f.substring(0,12) == “Appréciation”)
{this.getField(f).readonly = true;}
}
Pour la dévalidation, on peut traiter tous les champs.
for (var i = 0; i < this.numFields; i++) {
var f = this.getNthFieldName(i);
this.getField(f).readonly = false;}Correct ???
@+
:bonjour:5 novembre 2015 à 15:40 en réponse à : Verrouillage de plusieurs champs sauf certains suite à action sur bouton #59900bebarthMaître des clésje regarde !
…et sinon, le fichier joint correspondait-il ?
@+
:bonjour:5 novembre 2015 à 15:15 en réponse à : Verrouillage de plusieurs champs sauf certains suite à action sur bouton #59898bebarthMaître des clés…si j’ai bien compris, il faut que le bouton verrouille uniquement les champs “Appréciation” (en amont) et pas les autres (en aval).
si c’est le cas, une seule ligne suffit en utilisant la Convention de dénomination des champs de formulaire :
this.getField(“Appréciation”).readonly = true;ai-je bien compris ?
@+
:bonjour:5 novembre 2015 à 13:43 en réponse à : Verrouillage de plusieurs champs sauf certains suite à action sur bouton #59889bebarthMaître des clésbonjour,
avez-vous essayé avec :
…
if ((f.name != “Notification”) || (f.name != “Visa”))
…
sinon, est-il possible d’avoir un fichier d’essai pour voir à quoi cela ressemble ?
@+
:bonjour:bebarthMaître des clésMerlin,
ton fichier n’est plus disponible, peux-tu le re-placer, il m’intéresse !!!
merci
:bonjour:bebarthMaître des clésMerci teacher,
…en fait, je m’étais trompé je voulais écrire 53ème !!! :geek: mai j’aurais quand même fait une faute…
…et si c’est pas en exposant, c’est une faute aussi ?
Depuis des années j’utilise ProLexis comme correcteur d’orthographe et de typographie et il ne m’a jamais signalé cette erreur !!!Impossible de télécharger le fichier l’Alex… il a été retiré ???
@+
:bonjour:bebarthMaître des clésIl y a une 53eme semaine dans une année si elle comporte au moins 4 jours : lundi -> jeudi.
😉bebarthMaître des clés👌
…Il calcule de 1 à 53 ou de 1 à 52 si on active la ligne:
//if(weeksNum>52){weeksNum=1;}
…est-ce que cela signifie qu’il faut modifier manuellement selon l’année ???
@+
:Euuuh:bebarthMaître des clésoui, et on peut ouvrir la fenêtre “rechercher” en javascript, mais est-ce que “par hasard” on pourrait lancer rechercher/remplacer ????
:doute:bebarthMaître des clésbonjour,
je me permets de remonter ce post, car je suis toujours en recherche pour rechercher/remplacer du texte en javacript.
le rechercher ne me pose pas de problème, mais c’est le remplacer que je ne trouve pas aussi, si quelqu’un à une réponse à me donner je suis preneur (même si la réponse est : c’est impossible…).
merci.
:doute:bebarthMaître des clésBonjour,
Personnellement je ne sais pas faire, et j’ai un doute que cela puisse se faire directement avec Acrobat.
J’espère que quelqu’un de plus averti que moi pourra répondre car ça m’intéresse de savoir !
Désolé, je passe mon tour…
:doute:16 octobre 2015 à 16:21 en réponse à : Afficher un bouton en fonction des choix du menu déroulant #59804bebarthMaître des clésvoici les différentes valeurs pour la propriété “display”.
Field is visible on screen and in print display.visible
Field is hidden on screen and in print display.hidden
Field is visible on screen but does not print display.noPrint
Field is hidden on screen but prints display.noView
@+
:bonjour:16 octobre 2015 à 13:06 en réponse à : Afficher un bouton en fonction des choix du menu déroulant #59800bebarthMaître des clésBonjour,
il y a plusieurs solutions pour traiter le problème. Ici on regarde la position du menu déroulant, mais pourquoi un menu déroulant juste pour 2 réponses possibles ? Des cases à cochées ne seraient-elles pas plus judicieuses ??? De même pourquoi un champ validation ? les champs “Conforme” ou “Non-conforme” peuvent apparaître/disparaitre selon si tous les autres champs sont conformes ou non ! mais peut-être y a-t-il une raison !!!!
@+
:geek: -
AuteurRéponses