abracadabraPDF › Forums › PDF – Général › Renomage du form avec incrémentation de champs. – RÉSOLU
- Ce sujet est vide.
-
CréateurSujet
-
18 octobre 2012 à 15:49 #44302jsamicaMembre
Bonjour à tous,
Est ce possible lors de l’envoi par mail d’un form, que celui ci se trouvant alors en pj, soit nommé avec une incrémentation de champs du genre :
nomdufichier_champsnom_champsdate.pdf
Merci pour votre aide.
:bonjour: -
CréateurSujet
-
AuteurRéponses
-
18 octobre 2012 à 16:05 #53747MerlinMaître des clés
Salut,
C’est possible si et seulement si on a au préalable placé un “script d’application” dans le dossier JavaScript d’Acrobat ou de Reader (sécurité oblige).
Un script d’application c’est un bête fichier texte avec l’extension .js qui contient du code JavaScript.Sinon, on peut ruser en récupérant le contenu (données) d’un ou plusieurs champs pour composer un nom de fichier.
Ensuite on affiche à l’utilisateur une alerte lui permettant de copier le nom de fichier proposé et lui expliquant ce qui se passe.
Pour finir, l’utilisateur n’a plus qu’à coller le nom de fichier dans la boite de dialogue d’enregistrement qui suit.Bien entendu, c’est un peu lourdingue et ça ne fonctionne que si l’utilisateur se sert d’un bouton/signet spécialement créé à cet effet.
S’il utilise le menu Fichier, c’est mort…:Smiley15:
19 octobre 2012 à 08:29 #53748jsamicaMembreSalut Merlin,
Merci pour ces explications
Tu n’aurais pas à tout hasard un exemple stp ? le code n’est pas mon meilleur ami ! :oh::bonjour:
19 octobre 2012 à 10:03 #53749MerlinMaître des clésC’est un exemple amputé pour cause de confidentialité mais le principe y est :
– le champ Nom clignote pour attirer l’attention (script de document qui s’exécute à l’ouverture seulement si le champ Nom est vide),
– une fois rempli, ce champ déclenche l’apparition du bouton Enregistrer et génère un numéro (unique car basé sur la date et l’heure courante),
– quand on clique dessus (difficile de le rater !) le bouton Enregistrer assemble les données contenues dans le champ Nom plus le champ Numéro plus un terme fixe pour former un nom de fichier qui est proposé dans une fenêtre.Contrairement à Mac OS, sur Windows le texte d’une fenêtre d’alerte n’est pas sélectionnable et encore moins copiable, donc on utilise une fenêtre de saisie. Ce qui permet le copier-coller dans tous les cas de figure.
:Smiley15:
[attachment deleted by admin]
19 octobre 2012 à 12:45 #53750jsamicaMembre:bravo: :extra:
une fois de plus au top Merlin :priere:
Mille merci
:bonjour:22 octobre 2012 à 09:17 #53751jsamicaMembreBonjour Merlin,
Suite à ta précédente réponse, j’ai réalisé des tests en supprimant les morceaux qui à priori ne m’intéressait pas.
Voici mon code qui ne fonctionne pas, :Code:var strFixe = “Fiche-exemple”;
var strNom = this.getField(“nom”).value;
var strNum = this.getField(“date”).value
{this.info.Title = strFixe + “-” + strNum + ” – ” + strNom ;}Il est joint dans un nouveau script du bouton envoi.
Il s’exécute avant le script d’envoi classique.Du coup je me pose une question ne peut on pas concaténer le champs “Attacher” de la même manière que l’ensemble des autres variables du mail (To, Cc, object, body…) ?
Merci
:Smiley03:22 octobre 2012 à 18:59 #53752MerlinMaître des clésDu coup je me pose une question ne peut on pas concaténer le champs “Attacher” de la même manière que l’ensemble des autres variables du mail (To, Cc, object, body…) ?
Heeuuu…
Je ne comprend la question…
:Euuuh:Sinon, concernant ton script, je n’ai pas testé mais je pense qu’il suffit de supprimer les accolades :
var strFixe = “Fiche-exemple”;
var strNom = this.getField(“nom”).value;
var strNum = this.getField(“date”).value
this.info.Title = strFixe + “-” + strNum + ” – ” + strNom ;:Smiley03:
PS : this.info.Title ne fonctionne que dans Acrobat, pas dans Reader…
Donc le mieux c’est :/* si application active est Acrobat */
if (app.viewerVariation == “Full”)
{
var strFixe = “Fiche-exemple”;
var strNom = this.getField(“nom”).value;
var strNum = this.getField(“date”).value
this.info.Title = strFixe + “-” + strNum + ” – ” + strNom ;
}
:idee:23 octobre 2012 à 07:27 #53753jsamicaMembreSalut Merlin j’ai essayé ton script, mais cela ne fonctionne pas ! :Euuuh:
Je joins une fichier exemple.
Peux stp cepedant m’expliquer la différence entre ces 2 scripts ?Merci
:bonjour:[attachment deleted by admin]
23 octobre 2012 à 09:38 #53754MerlinMaître des clésTon script et ton fichier d’exemple fonctionnent très bien, mais this.info.Title c’est pour changer le Titre du document, pas le nom de fichier…
Le différence entre les deux scripts c’est la première ligne qui protège l’exécution du script : le code placé entre les accolades ne s’exécute qu’en présence d’Acrobat, en présence de Reader il ne s’exécute pas.
:idee:23 octobre 2012 à 12:29 #53755jsamicaMembreah ok je pouvais tester longtemps…
y a t’il donc une balise pour changer le nom de fichier ?
C’est ce que je cherche à faire, et non pas le titre du doc.ok pour l’explication, bon à savoir !!
Merci Merlin
:bonjour:23 octobre 2012 à 12:33 #53756MerlinMaître des clésy a t’il donc une balise pour changer le nom de fichier ?
C’est ce que je cherche à faire, et non pas le titre du doc.==> http://abracadabrapdf.net/forum/index.php/topic,1779.msg8903.html#msg8903
:doute: :joker:
23 octobre 2012 à 13:48 #53757jsamicaMembreje suppose que tu me renvoi à ta réponse plus haut, du 18 octobre 2012 : 18:05
J’ai compris ce principe par le biais de ton fichier exemple joint.
Par contre ceci fonctionnant avec un bouton enregistrer sous et non pas avec la fonction maildocSinon il n’y a pas une fonction pour concaténer des champs existant du doc vers le nom du fichier joint dans le mail ? du genre nomfichier-champsnom-champsdate.pdf
Mille Merci Merlin
:Smiley03:23 octobre 2012 à 13:50 #53758MerlinMaître des clésLa fonction MailDoc envoie le document tel quel, avec son nom ==> il faut préalablement enregistrer-sous avant d’envoyer.
Cela peut se faire avec un seul, ou bien avec deux boutons séparés.:Smiley01:
23 octobre 2012 à 14:02 #53759jsamicaMembreOK merci
Peux tu me dire stp quelle est la balise pour réaliser ce système avec un seule bouton ?:bonjour:
24 octobre 2012 à 10:44 #53760MerlinMaître des clésEt bien soit on place les deux scripts à la suite dans une seule “Action” JavaScript, soit on place les deux scripts dans 2 “Actions” qui se suivent, comme tu as fait dans ton dernier fichier d’exemple.
:Smiley01:
24 octobre 2012 à 12:08 #53761jsamicaMembreSalut Merlin,
OK j’ai bien compris ça.
Par contre y a t’il une balise js ? this.info… ?
Ou alors tu es obligé de suivre la méthode précédemment indiquer à la fenêtre qui s’ouvre et copier coller les éléments ?Merci
:Smiley03:24 octobre 2012 à 12:22 #53762jsamicaMembreJ’ai trouvé sur la super doc (ironique) js api d’adobe cette instruction :
Code:console.println(‘”The file name of this document is ‘
+ this.documentFileName +’.”‘);qui à priori ne fonctionne pas !
Une idée ?Merci
24 octobre 2012 à 12:46 #53763MerlinMaître des clésCa marche trop bien.
(Exemple ci-joint)
:Smiley03:Méfie toi de la doc JS d’Adobe : elle contient pas mal d’erreurs.
Une qui a bien failli me rendre fou concerne la propriété readonly, dans la doc elle est notée readOnly…
(Avec une capitale)
:oh:[attachment deleted by admin]
25 octobre 2012 à 09:01 #53764jsamicaMembreMerci Merlin
Ils sont forts ces éditeurs !!! :mur:
Merci pour l’info c’est effectivement le coup à passer des plombes sur un truc…:bonjour:
25 octobre 2012 à 19:58 #53765MerlinMaître des clésLe niveau de précision de ce type de document est forcément incompatible avec la dead-line de commercialisation d’un logiciel.
Le résultat est affaire de compromis et il faut faire avec.:priere:
28 janvier 2015 à 08:51 #53766ricardolandesMembreBonjour,
Désolé de réveiller ce vieux post.
J’ai passé beaucoup beaucoup de temps à parcourir le forum (à l’aide de la fonction rechercher) afin de savoir si l’on peut automatiquement renommer le nom d’un formulaire (comme dans le script donné) mais sans passer par un copier coller.
Merci28 janvier 2015 à 10:26 #53767MerlinMaître des clésC’est possible mais il faut installer un script d’application dans chaque logiciel utilisé : sur toutes les machines et dans toutes les sessions utilisateurs.
:Smiley01:28 janvier 2015 à 11:01 #53768ricardolandesMembreDonc pour moi ce ne sera pas concevable.
Je vais toutefois utiliser ce script qui proposera à l’utilisateur la fonction copier coller.
Merci -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.