Toutes mes réponses sur les forums
-
AuteurRéponses
-
16 août 2016 à 17:35 en réponse à : Problèmes : Recadrage PDF + ajout de marges blanches + format A4 #61181
bebarth
Maître des clés…sinon il faut rentrer les valeurs indiquées page 5 de mon fichier.
mais effectivement, l’outil de Merlin est plus simple !
@+
:bonjour:16 août 2016 à 16:52 en réponse à : Problèmes : Recadrage PDF + ajout de marges blanches + format A4 #61178bebarth
Maître des cléslLe poids du fichier était trop important sur mon premier message qui n’est donc pas parti. J’ai dû le réduire pour pouvoir envoyer le second message !
@+
:bonjour:bebarth
Maître des clésbonjour,
l’énoncé du problème doit être clair vu que Merlin à répondu, mais personnellement je n’ai pas compris ou est le problème pour cacher les cases si elles ont des noms différents !!!!
@+
:bonjour:16 août 2016 à 16:14 en réponse à : Problèmes : Recadrage PDF + ajout de marges blanches + format A4 #61175bebarth
Maître des clés??? je suis certain d’avoir répondu à ce post tout à l’heure et pourtant je ne vois pas ma réponse !!!
voici donc ce que j’avais écris :bonjour,
Je suis entièrement d’accord avec Merlin pour dire qu’Acrobat n’est pas le logiciel adapté pour ce genre de travail. Voici tout de même un mode d’emploi qui vaut ce qu’il vaut pour te permettre de faire l’opération de recadrage sur un format A4.
1) ouvrir le scan avec Acrobat
2) modification du format de page en A3
3) recadrer l’image avec l’outils « Modifier le texte et les images » puis clique droit « recadrer »
4) l’image est recadrée
5) recadrer la page au format A4
6) sélectionner l’image…
7) …et la positionner puis enregistrer au format pdf
faire de même pour toutes les pages puis assembler si nécessaire.
@+
:bonjour:16 août 2016 à 06:03 en réponse à : Acrobat XI Pro V11.0.17 – Sélection des champs impossible dans l’onglet "Calcul" #61065bebarth
Maître des clésbonjour,
cf. fichier joint.
@+
:bonjour:bebarth
Maître des clésbonjour,
tu trouveras en pièce jointe le chemin pour optimiser un fichier pdf sur Mac mais je suppose que sous Windows ça doit être à peu près le même cheminement.
@+
:bonjour:bebarth
Maître des clésbonjour,
Les calques se situent au dessous des champs et n’empêcheront donc pas les modifications. Ce n’est donc pas un calque qu’il faut mettre mais un champ « visible » au dessus des autres et un script qui se lance à l’ouverture et qui cache ce/ces champs si le fichier est ouvert avec Adobe Reader ou Acrobat :
if (app.viewerVariation == « Reader » || app.viewerVariation == « Full ») {this.getField(« cache »).display=display.hidden};
Bonnes vacances & @+
:bonjour:bebarth
Maître des clésbonsoir,
Je pense que j’ai pris le problème précédent en cours et que je ne l’ai pas compris. Il aurait peut-être fallu que je reprenne le post depuis le début…en ce qui concerne la somme de tous les champs « sousTotal », voici ce que je te propose en script de calcul :
var nomchamp= » »;
var total=0;
for (var i = 0; i < this.numFields; i++)
{var nomchamp=this.getNthFieldName(i);
var string = nomchamp,
substring = « sousTotal »;
if(string.indexOf(substring) > -1)
{var f = this.getField(nomchamp).value;
var total=total+f}
}
event.value=total;@+
:bonjour:bebarth
Maître des clés…tant mieux, mais à mon avis les 2 premières lignes ne servent à rien !
…
event.value = this.getField(« quantite1. »+num).value;
……à quoi correspont « num » ici ???
L’exemple que t’a donné Merlin sert à récupérer le numéro d’un champ pour faire une opération avec ce muméro. Ici tu travailles sur le même champ.
@+
:bonjour:bebarth
Maître des clésbonjour,
en vacances mais de passage, je ne comprends pas bien ce que tu veux faire !
si la quantité est <= 10 elle est égale à 10 sinon à 100 ???
si c’est le cas il faut rajouter dans ton script de validation :
if (event.value <= 10) {event.value = 10}
else {event.value = 100}
sinon explique ce que tu désires. je devrais pouvoir te répondre jusqu’à la fin de la semaine.
@+
:bonjour:bebarth
Maître des cléstrès bien !!!
Voici une variante avec l’opérateur switch que je préfère utiliser lorsqu’il y a plusieurs conditions if… else… à la suite.
@+
:bonjour:bebarth
Maître des clésvoici un fichier qui devrait répondre à ton problème.
@+
:bonjour:bebarth
Maître des clésbonjour,
ça marche très bien, effectivement avec des cases à cocher plus menu déroulant.
le script est à placé en script de calcul personnalisé.
@+
:bonjour:bebarth
Maître des clésmerci Merlin pour ces explications.
C’est bien ce que je pensais, mais j’ai juste changé if (event.willCommit == false) en if (!event.willCommit) pour que ça marche alors qu’apparemment c’est pareil !!!
Le principal, c’est que ça fonctionne et la prochaine fois je ferai différents essais.
@+
:bonjour:bebarth
Maître des clésMerci Merlin,
J’avais mis en script de touches personnalisé :
var regxp=/^[0-9.]$/;
if (event.willCommit==false)
{
if (event.change.length>0 && regxp.test(event.change)==false)
…Maintenant, j’ai combiné les 2 scripts et cela fonctionne.
1) Y a-t-il une « meilleure » solution pour limiter les caractères entre celle que j’ai utilisée (regex) et celle que tu as proposée (caractères ascii) ?
2) Je ne comprends pas la différence entre :
if (event.willCommit==false)
et
if (!event.willCommit)
A un point d’exclamation près, j’y étais presque… :geek: En tout cas merci pour la solution.
@+
:bravo: :bonjour:bebarth
Maître des clésla taille du champ est trop petite pour tout afficher !
@+
:bonjour:bebarth
Maître des clés…voici un fichier pour t’inspirer !!!
@+
:bonjour:bebarth
Maître des clés…il faut peut-être indiquer les bons noms de champs. J’ai mis « ChampCommande » car je ne connais pas le nom de ton champ.
Sinon, joins ton fichier.
@+
:bonjour:27 juin 2016 à 12:35 en réponse à : Indiquer la valeur un champ à partir d’un fichier compteur incrémenté #60851bebarth
Maître des clésbonjour Merlin,
Pour l’instant je m’en sors avec une action avec 2 scripts :
1er script : j’ouvre le fichier « compteur.pdf » que j’incrémente puis enregistre sous un autre nom (compteur_increment.pdf)
2ème script : j’ouvre le fichier « compteur_increment.pdf » que je réenregistre sous le nom « compteur.pdf »Les 2 scripts regroupés en 1 seul dans une même action donnent « ===> Ce fichier est déjà ouvert. » alors qu’en 2 scripts séparés (mais dans la même action » cela fonctionne !!! :Euuuh:
J’ai donc 2 fichiers pour le compteur. Cela n’est pas trop grave car c’est pour une application perso, mais si un jour tu as une info, ça m’interessera certainement.
@+
:bonjour:bebarth
Maître des clésbonjour,
1 > j’ai la case TVA avec cette formule : event.value =(this.getField(« Total HT »).value * 0.20)
mais le total me donne ceci : 504.40000000000003€
comment modifier de façon a ne pas avoir que 5.04.40€ ?Il faut régler le « Nombre de décimaux » à 2 !!! cf. copie d’écran jointe.
2> j’ai une case avec les frais de port qui s’elevent à 15€ et qui doivent devenir » OFFERT » dès que la commande atteint les 600€/HT, quel formule mettre s’il vous plait?
A mettre en script de calcul du champ de frais de port :
if (this.getField(« ChampCommande »).value >= 600)
{event.target.value= »Offert »}
else
{event.target.value= »15 € »}@+
:bonjour:25 juin 2016 à 21:31 en réponse à : Page modèle , bouton effacer formulaire = plus rien qui va #60946bebarth
Maître des clésbonjour,
Il faudrait tout d’abord modifier le préfixe des champs de ta page 1. Avec le script que je te propose, je te conseille d’utiliser P0 au lieu de P1 : le chiffre correspondant au numéro de la page (qui commence à 0).
Lorsqu’on ajoute une page depuis un modèle, le préfixe s’incrémente mais le script est toujours le même… il faut donc dans le script savoir sur quelle page on est pour modifier le préfixe dans le script. Ici vu qu’on ne peut ajouter qu’une page, on suppose que le préfixe sur la page correspond au numéro de page (ce qui n’est plus vrai si on ajoutait une page autre… sinon ce serait un autre problème).
Par contre, je n’ai pas compris quels champs devait réinitialise chaque bouton. Voici donc ce que je te propose avec les explications des lignes à placer sur chaque bouton effacer, avec les champs à réinitialiser correspondants :var pg=this.pageNum; //Numéro de page
var prefixe= »P »+pg+ ». »; //Construction du préfixe
var fields = new Array(); //Table des champs à réinitialiser
//Champs en exemples
fields[0] = prefixe+ »RapAcc.Date »;
fields[1] = prefixe+ »RapAcc.Dropdown1″;
fields[2] = prefixe+ »RapAcc.Dropdown2″;
fields[3] = prefixe+ »RapAcc.Text2″;
//etc.
this.resetForm(fields); //RéinitialisationCe script est à placer sur les boutons de la page modèle et de la page 1 évidemment… :Smiley01:
J’espère que cela te convient et que tu saura adapter ce script à tous tes boutons.
@+
:bonjour:24 juin 2016 à 15:50 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60912bebarth
Maître des clés…comme ça, c’est encore plus simple !
pour plus d’infos, jette un oeil sur cette page :
http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_mailDocbc-74&rhtocid=_6_1_8_23_1_73
@+
:bonjour:24 juin 2016 à 15:45 en réponse à : Indiquer la valeur un champ à partir d’un fichier compteur incrémenté #60849bebarth
Maître des clésbonjour Merlin,
Je n’avais pas essayé en script d’application car avec mon script en action je n’ai pas de message sur les privilèges mais :
RaiseError: Ce fichier est déjà ouvert.
Doc.saveAs:36:Batch undefined:Exec
===> Ce fichier est déjà ouvert.Je viens d’essayer en script d’application et là, j’ai bien un message :
NotAllowedError: Les paramètres de protection interdisent l’accès à cette propriété ou à cette méthode.
App.newDoc:21:Menu Compteur:ExecN’a-t-on pas normalement plus de privilèges en script d’application ???
merci.
:bonjour:24 juin 2016 à 09:58 en réponse à : Page modèle , bouton effacer formulaire = plus rien qui va #60945bebarth
Maître des clés…dans ta messagerie.
@+
:bonjour:24 juin 2016 à 08:52 en réponse à : Page modèle , bouton effacer formulaire = plus rien qui va #60943bebarth
Maître des clésC’est vrai que ce n’est pas beaucoup !!! mais je n’ai pas accès à ton fichier.
@+
:bonjour:24 juin 2016 à 08:16 en réponse à : Indiquer la valeur un champ à partir d’un fichier compteur incrémenté #60847bebarth
Maître des clésbonjour,
J’avance mais je bloque ! Dans le principe :- j’ouvre mon fichier compteur avec otherDoc = app.openDoc…
- je créé un nouveau fichier avec newDoc = app.newDoc()
- j’insère la page du compteur dans ce nouveau fichier
- je ferme le fichier compteur avec otherDoc.closeDoc()
- j’enregistre-sous le nouveau ficher avec le nom du compteur
[/list]
Mais la, la console me dit que le fichier est déjà ouvert (alors que je l’ai fermé avec otherDoc.closeDoc().
Si j’enregistre mon nouveau fichier sous un autre nom, il est bien créé et remplace l’éventuel fichier existant sans boîte de dialogue.
Le problème viendrait-il de app.openDoc ou closeDoc() ??? j’ai modifié pas mal de paramètres sans succès.
J’ai aussi essayé otherDoc.dirty = false; et otherDoc.disclosed = false avant de fermer mais rien n’y fait.quelqu’un aurait-il une idée ?
:idee:24 juin 2016 à 07:54 en réponse à : Page modèle , bouton effacer formulaire = plus rien qui va #60941bebarth
Maître des clésbonjour,
Désolé mais je n’ai pas réussi à télécharger ton fichier.
S’il ne fait que 1,2 Mo, pourquoi ne pas le joindre ???
@+24 juin 2016 à 07:52 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60910bebarth
Maître des clésJ’aimerais si c’est possible d’envoyer uniquement le mail si les champs (en vert) sont rempli
bonjour,
…mais envoyer le mail à qui ??? ouvrir Outlook (par exemple) sans aucune adresse prédéfinie ???PS: moi je suis sur pc est-ce que cela pourrait être à cause de ça ?
ça je n’en sais rien !
@+
:bonjour:23 juin 2016 à 20:11 en réponse à : Page modèle , bouton effacer formulaire = plus rien qui va #60939bebarth
Maître des clés…joins ton fichier, mais je ne te promets rien avant lundi !
@+
:bonjour:23 juin 2016 à 18:01 en réponse à : Page modèle , bouton effacer formulaire = plus rien qui va #60937bebarth
Maître des clésbonjour,
Tu veux dire que lorsque tu veux effacer un des champs, il est effacé sur toutes les pages ???
Tu peux donner un fichier ?
@+
:bonjour:23 juin 2016 à 17:59 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60908bebarth
Maître des clés:Euuuh: tu envoies où s’il n’y a pas d’adresse e-mail !!! :doute:
Pour info, j’ai essayé le fichier précédent sur un autre Mac et ça fonctionne également…
@+
:bonjour:23 juin 2016 à 14:12 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60906bebarth
Maître des clés:Euuuh:
…pourtant pas pour moi !!!
:doute:23 juin 2016 à 13:22 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60904bebarth
Maître des clésBonjour,
Par contre dans l’envoi 2 si la liste déroulante n’est pas rempli il l’envoi quand même.…c’est parce que si la liste déroulante n’est pas remplie, ici la valeur est un espace. J’ai donc rajouté une condition.
@+
:bonjour:23 juin 2016 à 06:53 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60900bebarth
Maître des clésbonjour,
J’ai adapté et d’après moi simplifié les scripts de tes boutons.
Si tu te penches un peu sur le post que t’a proposé Merlin, tu pourras améliorer les champs de ton formulaire (vérification des syntaxes des adresses emails…) -> voir champ « mail1 »Tu devrais lire ce sujet : http://abracadabrapdf.net/forum/index.php/topic,3040.0.html
@+
:bonjour:22 juin 2016 à 15:06 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60897bebarth
Maître des clés…c’est juste qu’il faut utiliser la flèche de l’onglet « Objets interactifs »…
ça ira beaucoup mieux !!!
@+
:bonjour:22 juin 2016 à 14:32 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60895bebarth
Maître des clésMalheureusement je n’arrive pas à activer le pdf en mode formulaire afin de voir comme il a été fait. :doute:
:Euuuh: il n’y a pas de problème pourtant !!! :doute:
@+
:bonjour:22 juin 2016 à 12:24 en réponse à : Comment modifier l’objet et le body à l’envoi d’un PDF par un bouton ? #60893bebarth
Maître des clés…après vérification, le retour ligne « n » fonctionne sur l’application Mail (Mac) mais ne fonctionne pas sur Outlook (ni PC ni Mac).
as-tu essayé ???
@+
:bonjour:bonjour,
Personnellement je ne peux pas t’aider car ça ne fonctionne pas toujours pour moi… mais ça avait l’air de fonctionner pour Ancha !
Est-ce que ça ne pourrait pas venir de la version du logiciel de messagerie ou de réglages ?
@+
:bonjour:bebarth
Maître des clésPS : j’ai corrigé tous mes noms de champs et enlevé les espaces :Smiley03:
bonjour,
Le champ « tobesentto » ne permet pas d’entrer des espaces, mais j’avais rajouté la ligne
var lesadresses = (this.getField(« tobesentto »).value).replace(/ /g, « »);
pour les retirer au cas ou les adresses arrivent dans ce champ autrement que par une frappe clavier !…Je n’ai pas vérifié la totalité des caractères permis pour les adresses e-mail…
J’ai été voir :
http://www.expreg.com/expreg_article.php?art=verifmail
T’as qu’à laissé comme c’est !!! :geek:@+
:bonjour:bebarth
Maître des clésbonjour,
Ci-joint un fichier contenant différentes propositions pour l’envoi. Il va falloir étudier un peu les scripts des différents champs si tu veux comprendre. Le caractère pour séparer les adresses est le point-virgule « ; ».
1) Pour le champ texte, il y a un script de touches personnalisé pour limiter les caractères et un script de validation pour vérifier que certains caractères obligatoires sont présents. Je n’ai pas vérifié la totalité des caractères permis pour les adresses e-mail. S’il en manque il suffit de les rajouter dans regxp=/^[0-9-_@.a-zA-Z;]
2) 3 boutons d’envois :
a. Envois simultanés pour envoyer un seul e-mail à tous les destinataires dont l’adresse est correcte.
b. Envois séparés unitaires pour envoyer un e-mail à chaque destinataire dont l’adresse est correcte avec uniquement le nom du destinataire dans le champ « tobesentto ».
c. Envois séparés groupés pour envoyer un e-mail à chaque destinataire dont l’adresse est correcte avec le nom de tous les destinataires dans le champ « tobesentto ».Tout fonctionne d’après ce que j’ai testé, mais il se peut que j’ai oublié certaines choses…
J’espère que ces propositions te conviennent et que tu sauras en adapter une à ton formulaire.
Retour pour ma part lundi…
bon weekend à tous.
@+
:bonjour:bebarth
Maître des clés…et comment sont séparées les adresses dans ce champ texte ???
Tu me donnes un exemple avec plusieurs adresses…
@+
:bonjour:bebarth
Maître des clésn : New paragraphe
r : Return (lign)Merlin, sur le fait que pour moi (utilisateur Mac) ces 2 caractères ne fonctionnent pas sur Outlook Mac & PC alors que pour Ancha (PC) ça fonctionne, tu as une piste…
de quelle info sur la conception as tu besoin pour rendre possible ma requête ?
Ancha,
y a-t-il un ou plusieurs champs ??? avec une seule ou plusieurs adresses ??? quel type de champ ??? s’il y a plusieurs champs, comment sont-ils nommés ??? …
@+
:bonjour:bebarth
Maître des clés…tant mieux !!! moi je travaille sur un Mac et lorsque j’envoie l’e-mail, tout est écris sur une ligne sur Outlook Mac ou PC…
Oui, il est possible d’aller récupérer la/les adresse(s) qui sont dans un champs, après cela dépend comment est conçu ton formulaire !!!
@+
:bonjour:bebarth
Maître des clés…après vérification, le retour ligne « n » fonctionne sur l’application Mail (Mac) mais ne fonctionne pas sur Outlook (ni PC ni Mac).
as-tu essayé ???
@+
:bonjour:bebarth
Maître des clésbonjour,
Pour envoyer le pdf ouvert en pièce jointe, il faut utiliser « mailDoc » :
http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23XREF_56439_mailDoc&rhsearch=maildoc&rhsyns=%20…donc :
mailDoc(true, « », « », « », « TECHNICAL FILE »+ »/ »+fTitre, « Dear all,nnPlease find enclosed the update of the Technical file of:nn »+fTitre+ »nnRelative to … .nnPlease acknowledge the receipt and send us back the Technical File dated and signed under 10 days.nnDo not hesitate to contact us for any question.nnBest regards, »);@+
:bonjour:bebarth
Maître des clésbonjour,
ce que veut dire Merlin, c’est qu’avec la commande « mailDoc », tu ne peux attacher uniquement que le fichier pdf ouvert.
Par contre, à l’intérieur de ce document, tu peux joindre plusieurs autres fichiers (Outils/Modification du contenu/Joindre un fichier).
@+
:bonjour:bebarth
Maître des clésbonsoir,
1) app.mailMsg(true, « », « », « », « TECHNICAL FILE »+ »/ »+fTitre, « Dear all,nnPlease find enclosed the update of the Technical file of:nn« +fTitre+ »nnRelative to … .nnPlease acknowledge the receipt and send us back the Technical File dated and signed under 10 days.nnDo not hesitate to contact us for any question.nnBest regards, »);
2)On ne peut pas ajouter une deuxième pièce jointe au sens où tu l’entends, par-contre, avant d’envoyer le formulaire on peut placer dedans autant de pièces jointes qu’on veut.
@+
:bonjour:15 juin 2016 à 12:16 en réponse à : Impossible de visualiser le tiret du 8, avec le script pour adresse email #60859bebarth
Maître des clés… sur les claviers Mac ces deux signes sont sur la même touche et on serait bien embêté si on devait les désigner ainsi…
…surtout que le tiret-bas se trouve en haut de la touche !!!
Et pour « slash » et « backslash », tu as une traduction : « trait oblique » et « trait oblique inverse » ???
@+
:bonjour:15 juin 2016 à 10:10 en réponse à : Impossible de visualiser le tiret du 8, avec le script pour adresse email #60856bebarth
Maître des clésMerci Merlin pour cette information.
Je suis moi-même très attaché à la langue française, mais c’est la première fois que j’entends ce nom et j’ai donc toujours utilisé le terme anglais. Il faut dire que je n’ai jamais cherché non plus…
La plupart du temps, lorsque les gens ne connaissent pas le nom, ils disent ‘tiret du 8″ ou « tiret du 6″… ce qui signifie automatiquement qu’ils travaillent sur un PC.…et exist-il un mot français pour backslash ou anti-slash ???
@+
:bonjour:15 juin 2016 à 08:56 en réponse à : Comment afficher le résultat de deux listes déroulantes sur la base d’un XSLX #60860bebarth
Maître des clésbonjour,
Je pense que ce post récent devrait répondre à ton attente !
http://abracadabrapdf.net/forum/index.php/topic,3036.0.html
@+
:bonjour:15 juin 2016 à 07:27 en réponse à : Impossible de visualiser le tiret du 8, avec le script pour adresse email #60853bebarth
Maître des clésbonjour,
Je pense que tu devrais redimensionner et repositionner ce champ car dans ton fichier, le caractère underscore est présent mais invisible car hors champs…
@+
:bonjour:bebarth
Maître des clésbonjour,
On est pas obligé de frapper dans le vide… :tutut: on peux aussi taper une tabulation !!!
Sinon il faut cocher la case « Valider la valeur sélectionnée immédiatement ».
@+
:bonjour:bebarth
Maître des clésbonjour,
Je n’ai pas tout suivi le problème, mais si tu ne peux pas renommer les directories tu peux renomer le chemin…
Tu récupères bien une adresse à un certain moment !!! il faut donc remplacer les espaces par « %20 » :
Essayes ça :
var chemin = this.path;
var cheminRenome = chemin.replace(/ /g, « %20 »);
console.show();
console.clear();
console.println(« Chemin : « +chemin);
console.println(« Chemin renomé : « +cheminRenome);
Ça devrait fonctionner
@+
:bonjour:bebarth
Maître des clésbonjour,
essayes de remplacer tes espace dans tes liens par %20.
tu devrais avoir :
file://blabla/blabla/blablabla/blablablabla/blabla%20blablabla.pdf
tu nous dis !!!
@+
:bonjour:bebarth
Maître des clésbonjour,
Ici, le résultat n’a pas l’air d’une opération aussi pour ma part, j’utiliserais la fonction switch que j’ai mis en script de calcul dans le champ « prix ».
En ce qui concerne le lien pour débutant, il faudra te plonger dans l’api reference qui n’est pas spécialement réservé au débutants…
http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp
@+
:bonjour:bebarth
Maître des clésbonsoir,
Effectivement, movePage n’est pas autorisé avec Adobe Reader…
Dans le tableau de la capture d’écran, le X signifie : The property or method is not allowed in Adobe Reader but is available in Acrobat Pro and Acrobat Standard.
J’écris la plupart du temps des scripts pour une utilisation perso avec Acrobat Pro aussi j ‘ai souvent tendance à oublier de vérifier !
Désolé, je vais réfléchir pour une éventuelle solution.
@+
:bonjour:bebarth
Maître des clésbonjour,
Dans le nouveau fichier joint, je teste que le champ comprend le texte « Page_ » quel que soit sa position, donc plus de limite de nombre de pages.
pour revenir a ton problème précédent, les noms des champs page 1, Page 2 et sur le modèle doivent être différents. Par exemple dans mon fichier :
Le nom du champ page 1 est « Page_1 » ;
Le nom du champ page 2 est « Page_2 » ;
Le nom du champ sur la page modèle est « Page_3 » ;
tu essayes comme ça et tout devrait fonctionner correctement.
@+
:bonjour:bebarth
Maître des clésMerlin,
Malgré ta belle explication je n’ai toujour pas réussi à utiliser la méthode includes()… Je me suis donc rabattu sur la méthode indexOf() qui fonctionne et qui me convient pour mon script.
Si Alex ou toi avez l’occasion d’essayer la méthode includes() sur Acrobat et qu’elle fonctionne, je suis intéressé quand même… vous me ferez un autre dessin !!!
@+
:bonjour:bebarth
Maître des clésha, je comprends mieux comme ça !!!
:soleil:bebarth
Maître des clésbonour,
Il faudrait ajouter :
event.target.display = display.hidden;
sur le bouton de duplication de page, ce qui cache le bouton de la page courante, mai pas celui de la nouvelle page.
@+
:bonjour:bebarth
Maître des clésMerci Alex,
c’est bien ce que j’avais lu dans l’API Reference, mais je dois alors mal utiliser la méthode includes().
Moi, j’utilise le même site Mozilla que toi sauf que certaines fois je vais sur la version française pour être certain de bien avoir compris vu que je suis un autodidacte en javascript et qu’il me manque quelques notions de base.
je vais donc continuer à chercher pour l’utilisation de cette méthode qui me simplifierait bien un script…
@+:bonjour:
bebarth
Maître des clésQuel est le nom du champ de la page 1, de la page 2, de ton modèle et des premières pages que tu rajoutes…
je parles des noms des champs Page_
@+
:bonjour:bebarth
Maître des clésA mon avis, la procédure pour créer la page modèle n’a pas été suivie…
Regarde ce post :
http://abracadabrapdf.net/forum/index.php/topic,3015.0.html
et vérifie si la procédure a bien été suivie !!!
@+
:bonjour:bebarth
Maître des clésoui 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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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 ? #60813bebarth
Maî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 ? #60811bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maître des clésIl faut faire un lien au fichier mondoc.pdf#page=x avec x = numéro de la page en absolue.
@+
:bonjour:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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 #50516bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maître des clésSi j’ai compris, ça devrait donner quelque chose comme ça !!!
Bon weekend & @+
:bonjour:bebarth
Maître des clésthis.resetForm();
c’est tout à fait ce que je voulais !
merci.
:bonjour:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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:bebarth
Maî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: -
AuteurRéponses