Forum abracadabraPDF.net

Thèmes de discussion du forum abracadabraPDF.net => PDF - Général => Discussion démarrée par: marie le 11 janvier 2017 : 19:11

Titre: Publipostage PDF avec Excel
Posté par: marie le 11 janvier 2017 : 19:11
Bonjour,
Très bonne année à ceux qui me liront.
Je dois régulièrement remplir des PDF à la chaîne : même formulaire à remplir en 20 exemplaires par exemple. Savez-vous si il est possible de faire un publipostage à partir d'un fichier XLSX ?
Si oui, pouvez-vous m'indiquer la marche à suivre ?
Merci beaucoup
Titre: Re : Publipostage pdf avec excel
Posté par: Merlin le 11 janvier 2017 : 21:36
Bonjour et bienvenue.

Sur le principe c'est simple : il faut que le nom du champ qui doit récupérer une donnée soit exactement le même que celui de la colonne dans laquelle il se trouve dans le fichier XLSX.
Ensuite il faut convertir (enregistrer sous) le XLSX au format CSV* pour pouvoir l'importer dans Acrobat (Importer les données).

* Il faut régler l'encodage sur Unicode / UTF-8
Titre: Re : Publipostage pdf avec excel
Posté par: marie le 12 janvier 2017 : 09:19
Bonjour Merlin,

Merci beaucoup.
Mais comment récupérer le nom du champs du formulaire PDF ?
Titre: Re : Publipostage pdf avec excel
Posté par: Merlin le 12 janvier 2017 : 17:56
Dans l'esprit c'est l'inverse qu'il faut faire : c'est le nom du champ qui doit correspondre au nom de la colonne.

Pour connaitre/modifier les noms des champs il faut trouver le panneau d'outils "Formulaire" dans Acrobat, mais faute de savoir laquelle tu utilises il est difficile de te dire comment puisque ça change à chaque version, ou presque.
Titre: Re : Publipostage pdf avec excel
Posté par: Ballou le 29 mars 2017 : 14:32
Bonjour,

Je me permets de reprendre ce sujet car il semble se rapprocher du problème que je rencontre actuellement.

J'ai testé votre solution et cela m'a bien permis de remplir certains champs d'un formulaire PDF à partir des informations contenues dans un fichier Excel, convertit au préalable au format .txt.

Cela ne génère cependant pas un publipostage. Lors de l'import de données je dois choisir parmi la liste la ligne de mon fichier txt que je souhaite importer. J'aimerai en fait obtenir un fichier PDF distinct par ligne de mon tableur.

Plus concrètement :


Je souhaite générer X formulaires F avec pour chaque fichier un pré-remplissage des données de certains champs (nom, prénom,...) importés du tableur Excel.

Cela vous semble-t-il réalisable ?
Titre: Re : Publipostage pdf avec excel
Posté par: Merlin le 29 mars 2017 : 14:49
Bonjour.

Oui c'est réalisable, actuellement le meilleur tuto est celui-ci : http://khkonsulting.com/2015/10/batch-import-excel-data-into-pdf-forms/
Si tu ne lis pas l'anglais Googol Traduction sera utile, mais en tout cas un JavaScript reste un JavaScript.
 :Smiley15:
Titre: Re : Publipostage pdf avec excel
Posté par: Ballou le 29 mars 2017 : 15:13
Merci Merlin pour le lien et la rapidité de ta réponse. Il n'y a plus qu'a ce plonger là dedans.
Titre: Re : Publipostage PDF avec Excel
Posté par: Ballou le 10 avril 2017 : 15:57
Ça marche !  :extra: C'est excellent !

Merci encore pour ton aide, cela fait un bien fou de voir tous ces fichiers se générer pré-remplis en un rien de temps. Un gain de temps considérable ! Merci !!
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 10 avril 2017 : 16:00
Merci mais c'est surtout KHK qu'il faut remercier.
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: rachiiiid le 15 juin 2017 : 16:03
Ça marche !  :extra: C'est excellent !

Merci encore pour ton aide, cela fait un bien fou de voir tous ces fichiers se générer pré-remplis en un rien de temps. Un gain de temps considérable ! Merci !!


Bonjour Ballou
Je ne comprends pas comment le lien en anglais a pu te venir en aide.
Pourrais-tu prendre 2 min pour me l'expliquer STP ?
Merci
Titre: Re : Publipostage PDF avec Excel
Posté par: Ballou le 22 juin 2017 : 12:02
Désolé pour le retard de ma réponse.

Alors tu dois avoir un export excel des données que tu souhaites utiliser dans ton publipostage. Ce fichier excel tu en fait un fichier .txt. en prenant bien soin de noter les en-têtes de tes colonnes.

Dans ton formulaire PDF tes champs à pré-remplir doivent reprendre le même nom que celui des en-têtes pour que le script sache quelle info mettre et à quel endroit.

Après reste à adapter le script à ton formulaire et ton ordinateur :

var fileName = "/Users/username/tmp/data.txt";   // the tab delimited text file containing the data
var outputDir = "/Users/username/tmp/";    // make sure this ends with a '/'


La première ligne c'est l'endroit où tu as stocké ton fichier .txt
La deuxième c'est l'endroit où tu veux qu'il génère tous tes fichiers PDF

this.saveAs(outputDir + this.getField("Text1").value + "_" + this.getField("Text2").value + ".pdf"); // saves the file

A la fin du script tu as cette ligne qui te permet de nommer les fichiers PDF générés, tu peux reprendre par exemple le champ "Nom" puis "Prénom" si tu as ça dans ton listing.

En espérant que cela te sera utile.
Titre: Re : Publipostage PDF avec Excel
Posté par: adrith le 18 juillet 2017 : 15:26
Bonjour à tous,


j'essaie également de faire comme vous.


J'ai adapté les 3 lignes (où est stocké le fichier .txt, où je veux que ça génère les fichiers, et le noms des fichiers générés).
J'utilise Adobe Acrobat XI Pro sous Mac.


J'ai mis le javascript en script du document, afin que ça génère les fichiers à l'ouverture.
Mais quand j'ouvre le fichier, j'ai cette erreur dans la console :


NotAllowedError: Les paramètres de protection interdisent l'accès à cette propriété ou à cette méthode.
Doc.importTextData:11:Document-Level:onopen


Une idée pourquoi ?


Voici la tête de mon fichier .txt :


Nom;Ville
Nous;paris
Moi;marseille


Merci
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 18 juillet 2017 : 15:45
Citer
Une idée pourquoi ?
Pour des raisons de sécurité un script placé dans un document ne peut pas ouvrir ni importer un autre fichier silencieusement, potentiellement à l'insu de l'utilisateur.

Il y a plusieurs façons de contourner le problème :
- ne pas indiquer le chemin d'accès au fichier, ainsi Acrobat demandera à l'utilisateur de le sélectionner ;
- exécuter le script directement depuis la Console (qui a tous les droits*) ;
- placer le script en script d'application* à l'intérieur d'une "Trusted function", et l'appeler depuis le document.


* Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/
Titre: Re : Publipostage PDF avec Excel
Posté par: adrith le 18 juillet 2017 : 18:18

Merci Merlin de ton retour.


Oui pas si simple en fait.


Si je comprends tout bien, mes solutions sont :
- placer un .js sur les postes afin que ça puisse être exécuté => pas sûr que ça soit possible
- faire jouer le script via la console => mais uniquement acrobat je suppose
- faire en important les données par l'utilisateur via le menu => idem, c'est impossible avec le reader je pense ?


Car je suis sur à 98% que ça sera avec le reader que la personne devra générer les pdf.


Et autre point, c'est possible de gérer les cases à cocher directement ? Ou bien faut mettre un champ texte et mettre un "X" dedans  ?


PS : Ballou, tu avais créer un .js sur ton poste ? et c'était bien directement avec Acrobat Pro ?


Merci
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 18 juillet 2017 : 19:39
Je n'ai pas relu tout le fil des messages mais il me semble qu'il est question de publipostage, et Acrobat Reader ne peut pas générer de nouveaux documents PDF.
Il ne peut que remplir des formulaires et dupliquer des pages templates (depuis la version 11).


Citer
- faire jouer le script via la console => mais uniquement acrobat je suppose
Il existe une ruse pour Reader XI et DC…  :Smiley03:
Titre: Re : Publipostage PDF avec Excel
Posté par: adrith le 19 juillet 2017 : 10:32
show me the path  :Smiley03:


J'ai placé le JS, par contre ça fonctionne avec la dernière version du reader ? Je ne vois ni le bouton, ni un nouveau menu ? Même après redémarrage.
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 19 juillet 2017 : 13:10
Non, c'est Reader JavaScript Console Window
À télécharger sur cette page : https://www.pdfscripting.com/public/Free_Acrobat_Automation_Tools.cfm
Titre: Re : Publipostage PDF avec Excel
Posté par: adrith le 19 juillet 2017 : 16:35
Bon j'ai beau tester un paquet de chose, je n'ai pas réussi à avoir la console sous le Adobe Reader, j'ai bien placé les 2 fichiers dans le dossier Javascript du Reader sur mon Mac, mais après je n'ai pas les nouveaux menus. Une idée ?


Sinon j'ai réussi à publiposter avec Acrobat Pro XI, en plaçant un fichier js dans le dossier Javascript d'Acrobat, ça c'est cool.
En faisant de la même manière avec le Reader, ça ne fonctionne pas. Est-ce que ça fonctionnerait via la console du Reader ? Ou avec le reader c'est complètement impossible ?


Merci
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: Merlin le 19 juillet 2017 : 19:21
j'ai bien placé les 2 fichiers dans le dossier Javascript du Reader sur mon Mac, mais après je n'ai pas les nouveaux menus.
Ce n'est pas un menu, cet utilitaire ajoute une icône dans le panneau Outils Externes.
Sinon, j'ai quelque part une version modifiée de cet utilitaire qui affiche la commande dans un menu… Mais sans possibilité d'associer un raccourci-clavier.
Titre: Re : Publipostage PDF avec Excel
Posté par: adrith le 20 juillet 2017 : 12:48
 :doute:  je ne sais pas pourquoi je ne l'ai pas, mais ce n'est pas le plus important.

Pour clore ce sujet, on est bien d'accord Merlin ou Ballou que sous le Reader, malgré le .js placé dans le dossier ou par n'importe qu'elle autre méthode, ce n'est pas possible de générer des fichiers PDF depuis un fichier txt ?

Sous Acrobat : OK

Sous Reader, j'ai :
NotAllowedError: Les paramètres de protection interdisent l'accès à cette propriété ou à cette méthode.

Merci
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 20 juillet 2017 : 14:31
Acrobat Reader permet d'importer des données TXT, CSV, FDF et XFDF dans des champs de formulaires déjà existants et d'enregistrer-sous pour générer un nouveau document.

As-tu placé ta fonction en "trusted function" ?
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 22 juillet 2017 : 12:22
Voir aussi ce super document d'exemple fourni par Thom P., notre maitre à tous : http://www.pdfscripting.com/public/FreeStuff/PDFSamples/PopulateFieldsFromXML_Sample.pdf

(Les fichiers annexes sont en pièces jointes dans le PDF)
Titre: Re : Publipostage PDF avec Excel
Posté par: Aurelia.k le 13 novembre 2018 : 15:34
Bonjour à tous et merci pour les informations sur le publipostage des formulaires PDF ..... C'est MAGIQUE. Merci MILLE fois!!!!

Cependant, je rencontre un problème à l'envoi des fichiers pour remplissage et signature, je m'explique :
- Il y a un formulaire par N° d'appareil.

- J'envoi ce formulaire via DocuSign pour un retour rempli et signer.
Tout marche à merveille à part un champs Texte : "commentaires" (champs texte libre)

Lorsqu'une personne rempli plusieurs formulaires le champs "Commentaire" est un doublon et se rempli partout pareil.
Je voudrais savoir s'il existe un code afin de renommer le nom du champs "Commentaire" en "Commentaire + N°appareil" (le n° d'appareil etant dans ma liste.txt) afin d'identifier le champs et supprimer les doublons.

Je ne sais pas si je suis assez clair... Tout ça est nouveau pour moi.Mais comme grace à vous j'ai pu créer un publipostage de formulaire vraiment génial.... je me dis que je peux peut-être aller plus loin...
Dans l'attente d'une réponse ... Merci à tous pour ce super forum
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 13 novembre 2018 : 19:19
Bonjour et bienvenue

Je ne comprend pas si le problème se pose lors de l'envoi ou lors de la réception des (données de) formulaires.
 :Euuuh:  :doute:
Titre: Re : Publipostage PDF avec Excel
Posté par: Aurelia.k le 14 novembre 2018 : 09:14
Bonjour,
Et merci de répondre aussi rapidement :Smiley01:
Les champs de mon formulaire reprennent les données de mon tableau excel, et sont en lecture seule.J'ai une case à saisir en texte libre : "commentaires"


Le problème est quand j'envoi les formulaires pour signature.La personne qui doit signer les formulaires remplit cette case "commentaire", si je lui envois plusieurs formulaire d'un coup, la case commentaire est la même partout. Donc s'il ecrit un texte dans une des cases commentaire, le texte se répète dans toutes les cases commentaire de tous les formulaires.
Il faudrait que je puisse nommer ce champs commentaire pour qu'il devienne unique dans chaque formulaire. donc le nommé commentaire + N° d'appareil.
Pensez-vous que cela est possible?




Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 14 novembre 2018 : 09:23
J'ai bien l'impression que ce que tu appelles "plusieurs formulaire d'un coup" est en fait un seul document PDF.
Me gourre-je ?
Titre: Re : Publipostage PDF avec Excel
Posté par: Aurelia.k le 14 novembre 2018 : 09:28
Et bien, c'est à peu prés ça.En fait cela me créer bien un formulaire par N° d'appareil. Pas de souci.
C'est lorsque je doit les envoyer via DOCUSign que le problème se pose. J'envois une enveloppe de PDF.Et du coup, Docusign groupe mes pdf en un seul, d'où mon problème de devoir nommer cette case commentaire.
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 14 novembre 2018 : 18:10
Comment sont créés ces formulaires ?
N'est-il pas possible de mettre un nom de champ différent pour chaque formulaire ?
Titre: Re : Publipostage PDF avec Excel
Posté par: Aurelia.k le 15 novembre 2018 : 09:25
Bonjour,
Oui, le plus simple est de mettre un nom de champs different sur chaque formulaire.Mais le faire manuellement me prend un temps fou.Je voulais savoir si cela était possible de le faire automatiquement.
Tous les champs de mon formulaire reprennent les données d'un tableau excel, l'intitulé de mes champs est donc l'entête de colonne de mon tableau Excel.
Ces champs sont en lecture seule et vérouillés. Donc jusqu'ici c'est bon. Et tout est automatique grace à vous.

J'ai deux champs qui ne sont pas vérouillés et qui ne sont pas attachés à mon fichier excel. Les champs "commentaires" et "Etat de fonctionnement". La personne qui remplit le formulaire doit saisir uniquement ces deux champs.Mais si j'envois 3 formulaires d'un coup, ces 2 champs sont les même partout.
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 15 novembre 2018 : 10:34
bonjour,
Il n'est pas possible de renommer un champ via JavaScript, par contre il y a une solution.
J'ai écris un script pour une utilisation perso qui va chercher tous les paramètres d'un champ, qui efface ce champ et qui créé un nouveau champ avec toutes les propriétés du champ supprimé mais avec un nouveau nom.
Je n'ai pas suivi ce post depuis le début, mais si ça t'intéresse je pourrais adapter mon script à ton formulaire. Il faudrait me faire passer un fichier et me dire quels champs et comment les renommer...
Ensuite, je t'enverrai une action.
Tu me dis...
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Aurelia.k le 15 novembre 2018 : 11:02
Bonjour,
Ci-joint mon fichier.Merci pour votre aide
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 15 novembre 2018 : 11:24
Je ne vois pas le champ "Etat de fonctionnement" !!! Est-ce le champ "Statut" ???
Je te propose de renommer ces champs avec le numéro du contrat en suffixe. Ça te va ???
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Aurelia.k le 15 novembre 2018 : 11:31
Oui, désolé, il s'agit de statut, c'est possible de mettre plutôt le numéro d'équipement?
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 15 novembre 2018 : 12:28
Je regarde dans l'après midi !
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 15 novembre 2018 : 21:44
bonsoir,
Désolé, j'ai été un peu pris cet après-midi. Du coup je viens de faire une adaptation spécifique à ton formulaire.
J'essaierai de faire une version "générale" prochainement.
Donc, ci-joint une action qui renomme tes 2 champs.
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Aurelia.k le 16 novembre 2018 : 09:33
Bonjour,
Et MERCI!!!!! :extra: C'est génial. :bravo:
Grace à vous, je vais gagner un temps fou. Merci pour votre aide, votre temps et votre générosité. :Smiley01:
 Bravo pour ce forum.J'ai appris des tas de choses!!!
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 06 mars 2019 : 11:39

Bonjour,


J'ai essayé d'adapter le code à mon document mais ca me met des erreurs de syntaxe et je ne comprends pas pourquoi.


Je vous mets le code si vous pouvez m'aider à comprendre l'erreur ou les erreurs.


Et on est bien d'accord que ce code doit aller donc éditeurs de scripts JavaScript?


Merci d'avance à tous :)


var fileName = "emplacement de mon fichier excel converti en txt.txt"
var outputDir = "emplacement pour enregistrer les différents PDF"
var err = 0
var idx = 0
while (err==0) {
 err = this.importTextData(nom de mon fichier txt, idx); // imports the next record
   if (err == -1)
app.alert("Error: Cannot Open File");
 else if (err == -2)
  app.alert("Error: Cannot Load Data");
 // else if (err == -3)
  // We are not reporting this error because it does
  // indicate the end of our data table: We've exhausted
  // all rows in the data file and therefore are done with
  // processing the file. Time to exit this loop.
  // app.alert("Error: Invalid Row");
 else if (err == 1)
  app.alert("Warning: User Cancelled File Select");
 else if (err == 2)
  app.alert("Warning: User Cancelled Row Select");
 else if (err == 3)
  app.alert("Warning: Missing Data");{
 else if (err == 0)this.saveAs(outputDir + this.getField("Nom").value + "_" + this.getField("Prénom").value + ".pdf"); // saves the file
  idx++;
 }
}
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 06 mars 2019 : 12:14
Citer
J'ai essayé d'adapter le code à mon document mais ça me met des erreurs de syntaxe et je ne comprends pas pourquoi.
Je vous mets le code si vous pouvez m'aider à comprendre l'erreur ou les erreurs.
En clair, tu nous donnes à analyser un code qui fonctionne bien parce-qu'il a été fait pour un autre document et dans un autre contexte, mais sans donner aucune information sur ton document ni sur les erreurs provoquées…

Pour faire ça il faudrait des devins, pas des magiciens.
 :joker:


Citer
Et on est bien d'accord que ce code doit aller donc éditeurs de scripts JavaScript?
???  :Euuuh:
==> https://www.abracadabrapdf.net/?p=2990
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 06 mars 2019 : 14:42

Désolée. Je pensais que le code était justement le même pour tous les documents et qu'il y avait juste à changer les emplacements des docs.


Je te mets en PJ le document PDF.
J'ai un fichier txt. qui reprend les 4 données. Et je voudrais donc qu'à chaque changement de nom, j'ai un nouveau pdf qui se complètent.
Mon fichier txt; c'est
Nom Prénom Organisme Fonction
A        Alain        X               y
B        Olivier      Z               T


Dans le code, j'avais donc bien modifier les emplacements ainsi que le nom à donner aux PDF générés.
Et je pensais, mais car je suis novice en JS, que tout le reste était correct et universel :)
Pour info, j'ai enlevé le JS du doc que je vous transmets vu que je l'ai mis dans mon message.


Merci d'avance si vous pouvez m'aider
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 06 mars 2019 : 16:25
Je crois savoir que l'auteur de ce script est en vacances.  :afro:
Il va falloir patienter quelques jours pour la réponse. 
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 06 mars 2019 : 16:48

Pas de soucis.
Je ne suis pas pressée.


Merci :)
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: bebarth le 11 mars 2019 : 13:02
bonjour,
Je crois savoir que l'auteur de ce script est en vacances.  :afro:
Moi j'étais bien en vacances la semaine dernière, mais je ne suis pas l'auteur du script...  :Smiley15:
Voici une action d'une adaptation avec traduction.
var Chemin = this.path;
var nomDocument = this.documentFileName;
var repertoire = Chemin.substring(0,Chemin.length-nomDocument.length);
var fileName = repertoire+"data.txt";
var outputDir = repertoire;
var err = 0;
var idx = 0;
while (err==0) {
    err = this.importTextData(fileName, idx++); // Importation des données
    if (err == -1) app.alert("Erreur : Le fichier ne peut pas être ouvert.");
    else if (err == -2) app.alert("Erreur : Les données ne peuvent pas être importées.");
    // else if (err == -3) app.alert("Error: Invalid Row");
    // Nous n'indiquons pas cette erreur car elle signale la fin du tableau de données
    // et il faut donc sortir de la boucle "while"
    else if (err == 1) app.alert("Attention : Sélection de fichier annulé par l'utilisateur.");
    else if (err == 2) app.alert("Attention : Sélection de ligne annulée par l'utilisateur.");
    else if (err == 3) app.alert("Attention : Données non trouvées.");
    else if (err == 0) this.saveAs(outputDir + this.getField("Nom").value + "_" + this.getField("Prenom").value + ".pdf"); // Enregistrement du fichier
}
Il faut que ton fichier data.txt soit dans le même répertoire que ton fichier .pdf et tous les fichiers seront enregistrés dans ce même répertoire.
Attention à ne mettre de caractères spéciaux dans les nom des champs. Ici j'ai renommé "Prénom" en "Prenom".
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 11 mars 2019 : 19:11
Citer
mais je ne suis pas l'auteur du script... 
Scuse, mais je n'ai pas trouvé de © dans le script…
 :Smiley08:
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 13 mars 2019 : 17:53

Merci pour ce code.
Mais j'ai un problème. Actuellement, mon code me dit que le fichier ne peut pas être ouvert.


Je te donne ce que j'ai compris de ton code. Dis moi si tu y vois une erreur.


[font=]var Chemin = this.path;(j'indique le chemin où se trouve mon dossier PDF)[/font][font=&amp][/font]
[font=&amp][font=]var nomDocument = this.documentFileName;(j'indique le nom de mon document PDF)[/font][font=]var repertoire = Chemin.substring(0,Chemin.length-nomDocument.length); (là j'ai rien touché)[/font][font=]var fileName = repertoire+"data.txt"; (je remplace data par le nom de mon ficher Excel enregistré en txt)[/font]


Pour tout le reste, je n'ai rien modifié.
Dis moi si je me trompe totalement.


Merci


Fred[/size][/font]
[font=&amp][/font]
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 mars 2019 : 18:50
bonjour,
Normalement, si ton fichier pdf et ton fichier data.txt sont dans le même répertoire, tu as juste à modifier le nom "data" pour indiquer le nom exact.
this.path lit le chemin du fichier pdf et this.documentFileName lit son nom donc il ne faut pas toucher.
Si le document data.txt n'est pas dans le même répertoire il faut remplacer "var fileName = repertoire+"data.txt";" par "var fileName = "le chemin exact du fichier data.txt";".
IL faut s'assurer d'avoir les droits dans ce répertoire !
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 14 mars 2019 : 14:33

Bonjour BeBarth,


Merci d'avoir pris le temps de me répondre et de m'expliquer.
C'est génial. Ca marche.


Merci beaucoup. :)


Bonne journée


Fred
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 14 mars 2019 : 15:21

Et je viens d'avoir une nouvelle idée.


Si dans ce PDF, je dois insérer des photos. Y a t'il moyen que de la même manière, la photo soit prise automatiquement dans ce même fichier.
En gros, une ligne de mon fichier data = 1 photo.
Là le publipostage pour le moment ne va me chercher que (et c'est déjà ouffissime) que mes données "excel". Peut-il si je crée un champ image aller chercher la photo qui correspond à la ligne du doc data?


Merci d'avance


Fred
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 03 mai 2019 : 15:19

Bonjour à tous,


Alors ca y est je maitrise le publipostage PDF à partir d'Excel.
Mais, sinon je reviendrai pas vers vous, je n'arrive toujours pas à insérer une image.


Je vous explique : dans un fichier, j'ai un certain nombre de photos de personnes nommées par le nom et prénom des personnes et je voudrais qu'elles s'incluent dans mon PDF, au moment du publipostage, dans la case photo quand les champs noms et prénoms de mon PDF correspondent au nom de la photo.


est ce possible?


J'avais bien pensé à mettre lier mes cellules excel à un lien vers le PDF mais malheureusement quand on enregistre en TXT, on perd ce lien.


Merci d'avance


Fred
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: bebarth le 03 mai 2019 : 21:49
bonjour,
Je vous explique : dans un fichier, j'ai un certain nombre de photos de personnes nommées par le nom et prénom des personnes...
Quel format de fichier ?
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 06 mai 2019 : 12:23

Bonjour,


En fait c'est un fichier normal (type mes documents :)) et à l'intérieur les photos sont soit en JPEG soit en PDF.


Merci


Fred
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: bebarth le 07 mai 2019 : 08:26
bonjour,
En fait c'est un fichier normal (type mes documents :) ) et à l'intérieur les photos sont soit en JPEG soit en PDF.
Tu parles d'images incluses dans un fichier Excel ? Je ne pense pas que ce soit possible à partir d'un script Acrobat !
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: boucledore95 le 13 mai 2019 : 16:33

Bonjour BeBarth,


Pas eu le temps de te répondre plus tôt.


Non elles ne sont pas incluses dans un doc Excel.
Elles sont toutes dans un dossier type "mes documents" placé sur le bureau.
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 14 mai 2019 : 15:07
bonjour,
C'est peut-être réalisable en mettant l'image dans un champ "bouton".
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_methods.htm%23TOC_buttonImportIconbc-4&rhtocid=_6_1_8_31_2_3
Mais il faudrait faire un fichier exemple plus précis pour voir ce que tu veux exactement...
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 11 décembre 2019 : 11:45
Bonjour,
J'ai l'impression que ce sujet n'est pas clos, [c'est mon premier message sur le forum!] mais si c'était le cas j'ouvrirai un nouveau sujet.J'ai découvert ce forum complétement par hasard et il m'a bien aidé pour des fonctionnalités sur des formulaires PDF. Mais j'essaye de suivre les conseils et codes indiqués sur ce sujet pour faire des formulaires publipostés depuis un fichier txt. Ça ne fonctionne pas  :mur: :'(Comme je suis loin d'être une experte en javascript je pense que c'est de ma faute, mais si quelqu'un avait la gentillesse de bien vouloir m'aider cela m’enlèverai une sacré épine du pied !
Mon fichier pdf (en mode formulaire) est enregistré dans le même dossier que la base de donnée en format txt.Les entêtes de colonnes sont nommées sans caractère spéciaux.Dans mon formulaire j'ai nommé les champs qui doivent se compléter automatique avec ces en têtes.Enfin j'ai fait un champs avec le code javascript qui doit faire le publipostage, et c'est là que la bât blesse, il ne se passe rien ...
Si quelqu'un peut m'aider à trouver une solution ce serait merveilleux !!
Ps: je suis sur windows 10
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 11 décembre 2019 : 11:55
Bonjour et bienvenue

Citer
Mon fichier pdf (en mode formulaire) est enregistré dans le même dossier que la base de donnée en format txt
Le fichier TXT doit se trouver dans le PDF, placé en pièce jointe dans le panneau des pièces jointes.
 :Smiley03:

Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 11 décembre 2019 : 12:10
Bonjour Merlin,
Merci pour votre réponse rapide  :Smiley08: ! Effectivement je n'avais pas saisi cette subtilité! J'ai donc mis le document txt en pièce jointe comme vous me l'avez indiqué.le code javascript doit se trouver où du coup ? Je ne comprends plus rien !!  :Euuuh: :Ooops:
Merci encore !
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 11 décembre 2019 : 19:33
bonjour,
Si tu peux partager ton formulaire et ton fichier txt, je regarde et je te montre comment faire demain.
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 12 décembre 2019 : 10:06
Bonjour,Merci beaucoup pour la proposition. Je ne peux pas partager mes documents, ce sont des documents de travail.Mais si je te donne des "faux" documents je pense que j'arriverai à refaire la manœuvre  :Smiley01: Par contre là je n'ai pas réussi à remettre le fichier txt en pièce jointe  :doute:
Merci encore !!
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 12 décembre 2019 : 10:32
bonjour,
Et que veux-tu faire exactement  et à quel moment ?
J'imagine que ton fichier .txt provient d'un tableur (Excel ???) et qu'il contient plusieurs lignes.
Veux-tu générer autant de fichier .pdf que de lignes ? Veux-tu juste imprimer ? Quand veux-tu déclencher l'action ? Lorsqu'on appuie sur un bouton ?
As-tu regardé d'autres discussions à ce sujet :
https://abracadabrapdf.net/forum/index.php/topic,3815.msg23793.html#msg23793
https://abracadabrapdf.net/forum/index.php/topic,3740.msg23100.html#msg23100
https://abracadabrapdf.net/forum/index.php/topic,3815.msg23793.html#msg23793
...
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 12 décembre 2019 : 11:17
Merci Bebarth !J'ai un document excel avec 11 colonnes et 110 lignes, tous les 6 mois ces données changent et j'ai besoin de faire un formulaire pour que les personnes puissent le compléter sans devoir imprimer le document. J'ai déjà fait un formulaire vierge, mais ça ne me convient pas trop parce que les personnes ne complètent pas le document comme je veux  :Smiley00: Dans l'idéal, je voudrai qu'il t ait autant de formulaires qu'il y a de lignes, il ne faudrait pas qu'un bouton soit visible, donc ce serait mieux par exemple quand on enregistre le document.Je n'avais pas regardé avant que tu me les proposes, à chaque recherche internet je ne tombais que sur le sujet actuel ;)Mais ce n'est pas ce que je veux faire. Il n'y aura que des cases à cocher sur le formulaire et des cases où télécharger une image (j'ai un script qui fonctionne bien déjà pour ça). C'est moi qui doit faire l'action de compléter les champs. Et il n'y a pas de menu déroulant.
En fait pour résumer, les personnes à qui j'envoie le formulaire devront avoir un formulaire personnalisé (avec leur nom prénom etc), où elles devront cocher des cases, compléter des champs de texte libre et intégrer une image en guise de signature. Tout le reste doit rester non modifiable.

Merci beaucoup, j'espère que je suis assez claire dans mes explications  :Ooops:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 12 décembre 2019 : 12:30
Dernières questions :
je peux te faire un formulaire original avec un bouton qui génère les formulaires personnalisés sans ce bouton ???
T'est-il possible de générer un fichier .csv à partir de ton fichier Excel ?
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 12 décembre 2019 : 13:51
Ce serait un bouton qui ne serait pas présent sur les formulaires personnalisés ?
Oui je peux faire un fichier .csv, mais je ne peux pas le mettre en pièce jointe.  :Smiley02: De toute façon c'était un "faux document". Comme le fichier .txt

Merci  :Smiley01:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 12 décembre 2019 : 14:50
Du coup ce sera une action, car c'est plus compliqué pour enregistrer un fichier à partir un bouton ! Il faut des droits...
Tu décompresses le fichier "Ge?ne?rer les formulaires.sequ.zip", tu double-cliques sur "Ge?ne?rer les formulaires.sequ". Acrobat va te demander si tu veux installer l'action, tu réponds OUI.
Ensuite tu ouvres le formulaire contenant le fichier .csv (tu peux essayer avec mon fichier par exemple) puis tu lances l'action.
ATTENTION : le formulaire original doit être placé dans un répertoire où tu as les droits en écriture !
Cela va te générer autant de formulaires que de lignes de données et les fichiers seront enregistrés avec un suffixe (NOM PRENOM).
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 12 décembre 2019 : 15:35
J'ai décompressé le document et j'ai bien installé l'action. Mais comment fait-on pour la lancer ? Il n'y a pas de bouton sur le document :'(
Avec quel bouton lance-t-on l'action ? Merci encore pour ton aide !  :priere:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 12 décembre 2019 : 15:54
Tu ouvres ton formulaire, puis dans les raccourcis d'outils il y a "Assistant d'action".
Si tu ne le trouves pas, tu vas dans les outils, tu le sélectionnes puis "Ajouter un raccourcis". Ensuite il sera toujours présent à moins que tu le supprimes.
Tu appuies donc sur "Assistant d'action" et tu vas avoir une liste d'action. La dernière ajoutée est en tête de liste.
Tu appuies sur l'action, puis sur "Début"... et tu ne fais plus rien avant la fin !!!
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 12 décembre 2019 : 17:15
 :extra: ça fonctionne ! Merci beaucoup !! J'ai pu modifier le code pour l'adapter aux colonnes de mon tableau. Mais, il  y a toujours un mais  :mur: ça ne me sort qu'un seul document ! Alors que j'ai essayé avec ton document et ça me sortait bien les trois documents, je ne rien modifié d'autres que la partie newDoc etc... et newDoc.saveAs
Merci beaucoup pour ton aide et le temps que tu as accordé à ma demande  :bravo:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 12 décembre 2019 : 17:35
Si tu veux/peux envoies moi tes fichiers sur ma boîte mail perso ou via wetransfer.
Tu trouveras mon adresse mail en cliquant sur mon pseudo.
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 13 décembre 2019 : 10:42
Bonjour,Je t'ai envoyé un MP  :Smiley01:
Merci!  :priere:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 décembre 2019 : 13:52
 Bonjour,
Je t'ai envoyé un message sur ta boite mail : je ne trouve pas les colonnes NOM et PRENOM, c’est certainement pour ça que ça ne fonctionne pas !!!
Que dit la console ?
Sinon, que doit-on mettre en suffixe pour l'enregistrement ?
@+
 :bonjour:
 
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 13 décembre 2019 : 15:37
Bonjour,
Oui j'ai changé pour mettre le champ ID, mais je l'ai changé dans le code aussi.Voici ce que dit la console : "Fonctions intégrées d’Acrobat EScript version 11.0
Acrobat SOAP 11.0

RaiseError: Le fichier est peut-être en lecture seule ou ouvert par un autre utilisateur. Enregistrez le document sous un nom différent ou dans un dossier distinct.
Doc.saveAs:37:Batch undefined:Exec
 ===> Le fichier est peut-être en lecture seule ou ouvert par un autre utilisateur. Enregistrez le document sous un nom différent ou dans un dossier distinct."
Le suffixe doit être ID.
Merci beaucoup !
 :Smiley01:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 décembre 2019 : 15:58
Ça fonctionne pour moi, sauf que j'ai un message après 49 fichiers :
===> Vous avez atteint le nombre maximum de fichiers pouvant être ouverts. Vous devez fermer certains fichiers avant de pouvoir en ouvrir ou en imprimer d'autres.
Ce que je ne comprends pas car dans le script je ferme chaque document en fin de boucle avec newDoc.closeDoc(); et que ces fichiers ne sont apparemment pas ouverts.
Je te joins déjà le nouveau script et je vais chercher le pourquoi.Merlin, une idée ???
@+

Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 13 décembre 2019 : 16:10
Wahou ! C'est vraiment magique !!  :bravo: :Smiley08: :extra:
Effectivement ça s'arrête aussi au n°49, même si je n'ai pas eu de message d'erreur.

Merci beaucoup ! ça m'a vraiment beaucoup aidée !!  :bravo: :bravo:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 décembre 2019 : 17:06
Le message est dans la console...
Je me renseigne...
@+
 :bonjour:
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: Merlin le 13 décembre 2019 : 19:01
je vais chercher le pourquoi. Merlin, une idée ???
C'est dû à la (mauvaise) gestion de la mémoire vive par Acrobat (ce problème existe depuis Acrobat X et sa nouvelle interface "monobloc").
C'est la première des raisons qui m'incite à conserver Acrobat 9 dans un des coins de mon disque dur.
 :Smiley03:


Deux solutions possibles :
- utiliser Acrobat Pro 9 ou version antérieure,
- faire un script qui traite les fichiers par paquets de 40.

Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 13 décembre 2019 : 20:29
Merci beaucoup Bebarth et Merlin pour votre aide !  :bonjour: :Smiley08:


J’ai essayé en décalant les lignes au fur et à mesure de mon document Excel et ça fonctionne très bien ! Ça va me faire gagner un temps fou !  :Smiley08:


Et je vais essayer d’avoir Acrobat pro 9 ;)


Merci encore, bonne continuation  :Smiley01:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 décembre 2019 : 20:57
J'ai pensé à une autre solution.
Je regarde si ça fonctionne !!!
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 décembre 2019 : 22:08
Voici une autre méthode qui fonctionne bien avec les 110 lignes.
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: Laure le 16 décembre 2019 : 10:28
Wahou ! C'est magique !!

Merci beaucoup  :extra: :bravo:
Titre: Re : Publipostage PDF avec Excel
Posté par: leludo le 27 décembre 2019 : 21:59
Bonsoir à tous
J'ai parcouru avec attention ce post et je suis "presque" parvenu à mes fins
j'arrive à obtenir un publipostage :)


juste un" truc " qui me chagrine
je voudrai que les pdf générés se mettent dans le même dossier que le fichier pdf de base ou bien dans un autre dossier ?
je ne sais pas comment faire ? (je ne veux pas que les noms de fichiers générés reprennent le nom du fichier support)


Voici mon code -Merci à vous

// Initialisation
var Chemin=this.path;
var CheminSansExt=Chemin.substring(0,Chemin.length-4)
// Importer l'unique PJ sans la nommer
var p=this.getDataObject(this.dataObjects[0].name)
var fichier=this.getDataObjectContents(p.name)
var donnees=util.stringFromStream(fichier)
// Séparation des rangées (saut de ligne)
var rangees=donnees.split("\n")
// Séparation des colonnes (TAB)
var colonnes=new Array();
for (var i=1; i<rangees.length; i++) {
   colonnes[i]=rangees[i].split(";");
   // Création d'un nouveau document
   var newDoc=app.newDoc();
   // Insertion de la/des page(s)
   newDoc.insertPages({cPath: Chemin});
   // Suppression de la première page générée à la création du document
   newDoc.deletePages(0);
   // remplissage des champs
   newDoc.getField("nom").value=colonnes[i][0];
   newDoc.getField("prenom").value=colonnes[i][1];
   newDoc.getField("date").value=colonnes[i][2];
   newDoc.getField("login").value=colonnes[i][3];
   // etc. Le nom du champ correspondant au numéro de la colonne (basée sur 0)
   //
            // Enregistrement "NomDuFichier (nom prenom).pdf"
            // Mon souci est ci-dessous car je veux que les pdf générés se mettent automatiquement dans le même dossier que le pdf qui sert de support !
            // mais sans avoir le nom du fichier original !
            //
            //newDoc.saveAs("Epreuve_01_"+colonnes[i][0]+"_"+colonnes[i][1]+".pdf"); <-- dossier de sauvegarde erroné car cela va dans un dossier \data\temp
            //
            newDoc.saveAs(CheminSansExt+"_Epreuve_01_"+colonnes[i][0]+"_"+colonnes[i][1]+".pdf"); // <-- fonctionne mais ajoute le nom du pdf original !
            // je voudrais ne pas avoir à préciser le dossier de destination et que les pdf générés se mettent au même endroit sans le nom du pdf original ! Possible ou pas ?
            //
   
   // Fermeture du fichier
   newDoc.closeDoc();
}
// Message d'alerte
app.alert(rangees.length-1+" formulaires individuels ont été créés.",2);
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 28 décembre 2019 : 08:51
bonjour,
Dans les initialisations tu indiques :
var Chemin=this.path;
var nomDocument=this.documentFileName;
var repertoire=Chemin.substring(0,Chemin.length-nomDocument.length);
Puis pour l'enregistrement :
newDoc.saveAs(repertoire+"_Epreuve_01_"+colonnes[i][0]+"_"+colonnes[i][1]+".pdf");Tu y étais presque...
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: leludo le 28 décembre 2019 : 14:39
Bonjour et merci Bebarth


J'ai apporté les modifications et tout fonctionne à merveille.


Je n'ai pas de mérite car c'est des récupérations de bouts de code glanés sur ce forum ; c'est toutefois des heures de lecture passionnante.
Merci pour l'aide.
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 08 janvier 2020 : 11:44
Bonjour,

je vous contacte car je n'arrive pas réaliser le publipostage avec PDF. J'ai relu les différentes discussions mais rien à faire je n'y arrive pas.
Quelques informations complémentaires :
En contexte, nous envoyons par mail des invitations fichier joint sous format PDF. (entre 800 et 1000 mails sur 1 semaine).
J'ai Adobe Acrobat XI Pro. J'ai un fichier PDF avec des champs que je complète à l'aide d'un fichier .CSV. L'import ligne à ligne fonctionne.
J'ai intégré un des codes JavaScript proposé sur ce forum dans "scripts JavaScript du document". J'ai attaché dans la pièce jointe du fichier PDF le fichier CSV. Et là je bloque, j'ai essayé de lancer le script avec "définir les actions du document", de passer par assistant d'action.
J'ai imprimé, fermé le fichier…

Bref ça ne fonctionne pas et je ne sais pas ce que j'ai mal fait ou ce que je n'ai pas fait. Pouvez-vous, s'il vous plaît m'aider ?
Et autre petite demande, pouvez-vous m'indiquer comment nous pouvons réaliser automatiquement l'envoi de mails avec les fichiers PDF issus du publipostage ?
Merci,
Stéphanie
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 08 janvier 2020 : 21:44
bonjour,
Voici un nouveau fichier formulaire et une action.
Quand on dit "un fichier .csv" il faut un fichier .csv et non .txt !
Le publipostage se fait à partir d'une action. Pas besoin de mettre le script en fonction, sinon il faut lancer la fonction...
Pour lancer 'envoi par mail, il faudra une adresse mail.
Tu me dis !
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 09 janvier 2020 : 09:48

Bonjour Bebarth, merci pour ta réponse. J'ai essayé ce matin en utilisant "Générer les formulaires.sequ" et les nouveaux fichiers pdf et csv. Cela a bien généré deux fichiers .pdf mais les champs ne ce sont pas complétés des infos du fichier.csv. Du coup j'ai testé l'import en manuel avec le fichier .csv et cela n'enrichi pas non plus les champs. Est ce qu'il ne faut pas que j'indique quelque part dans le fichier. pdf que le séparateur est un point virgule et non plus un tab? si oui comment puis je le faire?
Je te joins également le fichier .txt avec des adresses mails (.txt parce que le. csv est rejeté quand je soumets le formulaire). Pourras-tu me dire comment procéder pour que l'envoi des fichiers pdf ce fasse avec le mail correspondant à la ligne qu'il utilise pour le compléter?
Et autre question le fichier .pdf que je t'ai transmis va évoluer (insertion de logos…), comment vais je faire pour conserver ton travail? Si on me communique un nouveau pdf, pourrais je insérer une feuille dans le fichier que tu as préparer et déplacer sur la nouvelle feuille les champs à remplir? Puis supprimer l'ancien modèle? Est ce que cela fonctionnera encore?
merci pour ton aide,
Stéphanie
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 09 janvier 2020 : 11:24
...de retour ce soir !
Je regarde ça.
@+
 :bonjour:
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: bebarth le 09 janvier 2020 : 19:28
bonjour,
...Cela a bien généré deux fichiers .pdf mais les champs ne ce sont pas complétés des infos du fichier.csv....
??? chez moi les formulaires sont bien remplis !!!

Veux-tu que les noms des fichiers envoyés soient le nom du fichier original ou le nom modifié ???
Les e-mails seront générés automatiquement, mais il faudra appuyer sur le bouton "envoyer" de ton logiciel de messagerie autant de fois que d'e-mails créés. OK ?
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 10 janvier 2020 : 08:30
bonjour,
Je ne sais pas si je vais avoir le temps plus tard dans la journée, aussi je te passe les 2 versions.
Les actions sont en pièces jointes du formulaire.
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 13 janvier 2020 : 09:39

Bonjour Bebarth, je n'avais pas vu tes réponses. Je me suis empressée de tester mais le Dieu  d'Acrobat n'est manifestement pas de mon côté.
Je te joins 4 images des actions que je réalise. Et j'obtiens un fichier nommé A9R70B1 vide.
Et ce que tu as une idée sur ce qui ne va pas ?
merci beaucoup pour ton aide.
Stéphanie
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 13 janvier 2020 : 09:40
l'image suivante
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 13 janvier 2020 : 09:42
et la dernière
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 janvier 2020 : 09:48
bonjour,
Peux-tu exporter ton action et me la transmettre ?
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 13 janvier 2020 : 09:57

Bonjour,
C'est le fichier que j'ai extrait du forum.
Stéphanie
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 janvier 2020 : 10:10
C'est le fichier que j'ai extrait du forum.
Le problème est là !
Il faut remplacer le script de cette action ou charger et exécuter une des 2 actions (fichiers .sequ) que j'ai incluses dans mon dernier ficher.
Tu double-cliques sur chacune d'elle pour les charger dans Acrobat.
Tu me dis...
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 13 janvier 2020 : 10:46

Excuse moi je n'avais pas compris. Cela fonctionne super bien merci beaucoup.
Est ce que je peux te faire une demande complémentaire. Sais tu comment modifier l'objet du message qui est envoyé depuis ma boite mail? Actuellement, L'objet du message est "Sujet deu message"
Et pour me rassurer est ce que si j'ai un nouveau fichier pdf je peux utiliser le fichier .sequ que tu m'as transmis?
merci beaucoup,
Stéphanie
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 janvier 2020 : 11:06
Pour modifier le sujet du message il va falloir le modifier dans le script :
Et pour me rassurer est ce que si j'ai un nouveau fichier pdf je peux utiliser le fichier .sequ que tu m'as transmis?
Oui, mais il faut que les noms des champs correspondent à ceux indiqués dans le script et que la position des colonnes du fichiers .csv soient également identiques...
Si tu as un souci tu peux me faire parvenir ton fichier en MP.
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 13 janvier 2020 : 12:39

J'ai pu réaliser les modifications et cela fonctionne bien. Par contre sais-tu pourquoi il ne me prend pas ma signature par défaut quand il génère le mail?
merci
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 13 janvier 2020 : 13:40
Non, je ne sais pas !
Je n'avais jamais testé à dire vrai.
Je viens de le faire et ça fonctionne chez moi avec un Outlook Mac...
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 13 janvier 2020 : 14:22
bon si cela marche chez toi y'a de l'espoir, je continue à chercher.merci
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 23 janvier 2020 : 10:27

Bonjour Bebarth,
J'ai une petite question supplémentaire. Pour contourner le fait que ma cartouche de signature ne veut pas s'afficher, est t'il possible que l'image du pdf s'affiche dans le mail que l'on envoie?
J'ai peur de connaître la réponse … j'ai fait quelques recherches avant de poser la question et je n'ai rien trouvé à ce sujet.
mais qui ne tente rien...
merci
Stéphanie
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: bebarth le 23 janvier 2020 : 12:53
bonjour,
...ma cartouche de signature ne veut pas s'afficher
Comme ça j'ai eu du mal à comprendre... jusqu'à ce que je me souvienne ce que tu demandais précédemment !

est t'il possible que l'image du pdf s'affiche dans le mail que l'on envoie?
C'est ce qui ce passe avec Mail sur Mac, mais j'ai bien peur que cela soit une fonction du logiciel de messagerie.
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 23 janvier 2020 : 16:14

Bebarth, je sais que c'est un forum sur adobe mais j'ai trouvé un code qui permettrait d'insérer la signature Outlook. Est ce que tu pourrais me dire quel est le bout du code ci-dessous qui fait cela? Et peut être que si on le rajoute dans le code tu m'as préparé pour le publiposatge cela pourrait fonctionner???
Je croise les doigts.
merci Stéphanie
[font=&amp][/font]
[font=&amp]
[/size][size=0.88em][/size] (https://forum.excel-pratique.com/viewtopic.php?t=66836#)[/url][/color][/size][size=0.88em][/color]Sub EnvoiMail() Dim OutObj As Object, OutMail As Object Dim sPath As String, sNomFic As String Dim sAdrMail As String, strSujet As String, strBody As String ' Chemin d'enregistrement des fichiers temporaire sPath = Environ("temp") & "\"' Nom du fichier sNomFic = Format(Date, "yyyymmdd") & ".pdf"'' Exporter le fichier actuel en PDF ThisDocument.ExportAsFixedFormat OutputFileName:=sPath & sNomFic, ExportFormat:=wdExportFormatPDF, _ OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdExportAllDocument, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=False'' Création d'une instance Outlook pour envoyer un mailSet OutObj = CreateObject("Outlook.Application") Set OutMail = OutObj.CreateItem(0) ' Création de l'e-mail : Titre, Corps du message, destinataire sAdrMail = InputBox("Adresse mail du destinataire", "ADRESSE MAIL", "@") ' Création du message strSujet = "CECI EST MON SUJET" strBody = "Bonjour," & "<BR><BR>" _ & "Veuillez trouver en pièce jointe, le document voulu."' Préparation le mailWith OutMail ' Pour afficher la signature .Display ' Adresses mail .To = sAdrMail .cc = ""' Sujet de l'eMail .Subject = strSujet ' Corps du mail et signature .HTMLBody = strBody & "<br><br>" & .HTMLBody .Attachments.Add sPath & sNomFic EndWith' Supprimer le fichier créé Kill sPath & sNomFic ' Effacer les objetsSet OutMail = NothingSet OutObj = NothingEndSub[/size][/font][/size][/font]
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 23 janvier 2020 : 20:58
 :tutut: , je ne pense pas pouvoir intégrer ce code html ou un bout dans du JavaScript !
Désolé.
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 24 janvier 2020 : 08:13
Ah mince, choux et carottes n'ont jamais fais bon ménage  :Smiley01: merci A+ Stéphanie
Titre: Re : Re : Publipostage PDF avec Excel
Posté par: Merlin le 24 janvier 2020 : 13:50
j'ai trouvé un code
Je ne sais pas ce que c'est mais il sera certainement plus lisible ainsi :

Sub EnvoiMail() Dim OutObj As Object,
OutMail As Object Dim sPath As String,
sNomFic As String Dim sAdrMail As String,
strSujet As String,
strBody As String ' Chemin d'enregistrement des fichiers temporaire sPath = Environ("temp") & "\"' Nom du fichier sNomFic = Format(Date,
"yyyymmdd") & ".pdf"'' Exporter le fichier actuel en PDF ThisDocument.ExportAsFixedFormat OutputFileName:=sPath & sNomFic,
ExportFormat:=wdExportFormatPDF,
_ OpenAfterExport:=False,
OptimizeFor:=wdExportOptimizeForPrint,
Range:=wdExportAllDocument,
_ Item:=wdExportDocumentContent,
IncludeDocProps:=True,
KeepIRM:=True,
CreateBookmarks:= _ wdExportCreateNoBookmarks,
DocStructureTags:=True,
BitmapMissingFonts:=True,
UseISO19005_1:=False'' Création d'une instance Outlook pour envoyer un mailSet OutObj = CreateObject("Outlook.Application") Set OutMail = OutObj.CreateItem(0) ' Création de l'e-mail : Titre,
Corps du message,
destinataire sAdrMail = InputBox("Adresse mail du destinataire",
"ADRESSE MAIL",
"@") ' Création du message strSujet = "CECI EST MON SUJET" strBody = "Bonjour," & "<BR><BR>" _ & "Veuillez trouver en pièce jointe,
le document voulu."' Préparation le mailWith OutMail ' Pour afficher la signature .Display ' Adresses mail .To = sAdrMail .cc = ""' Sujet de l'eMail .Subject = strSujet ' Corps du mail et signature .HTMLBody = strBody & "<br><br>" & .HTMLBody .Attachments.Add sPath & sNomFic EndWith' Supprimer le fichier créé Kill sPath & sNomFic ' Effacer les objetsSet OutMail = NothingSet OutObj = NothingEndSub

 :Smiley03:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 03 février 2020 : 16:27
Bonjour Bebarth et Merlin,


Je reviens vers vous car en utilisant le publiposatge je me suis rendue compte que les pdf étaient en version modifiable.
J'ai recherché sur le forum et j'ai vu que Merlin proposait à quelqu'un un script pour rendre "read only" un fichier.
Je voudrais insérer le script mais je ne sais pas où je dois le faire dans le script qui est dans le fichier joint (test publiposatge & fichier nom prenom.seq)
Pouvez-vous m'aiguiller?


merci Stéphanie


Ci-dessous le message de Merlin :
 
 
Place ce script en action "souris relevée" dans le bouton d'envoi :

// rendre tous les champs readonly, y compris le bouton cliqué
for (var i=0; i<this.numFields; i++) {
   var oFld = this.getField(this.getNthFieldName(i));
   oFld.readonly = true;
}

// remettre le bouton cliqué en "not readonly"
event.target.readonly = false;

// envoi de l'email
this.mailDoc({bUI: true,cTo: "toto@free.fr",cSubject: "Sujet du message",cMsg: "Texte du message."});
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 03 février 2020 : 16:43
Si tu veux vraiment que les champs soient non modifiables et comme tu utilises Acrobat Pro pour le publipostage tu devrais plutôt "aplatir" (flatten) les champs.
C'est juste une ligne à ajouter à la fin de ton script :

// aplatir tous les champs sur toutes les pages
this.flattenPages();
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 03 février 2020 : 16:45

cool je teste.


merci,
Stéphanie
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 03 février 2020 : 16:57
grrr j'ai essayé tout à la fin mais cela génère le même type de fichier.
du coup j'ai tenté après remplissage des chanps mais sans succès. Est ce que ce ne serait pas avant la ligne

// Enregistrement "NomDuFichier (nom prenom).pdf ?

Merci pour ton aide


Extrait script :
// remplissage des champs
 newDoc.getField("Nom").value=colonnes[i][0];
 newDoc.getField("Heure FR").value=colonnes[1];
 newDoc.getField("Date FR").value=colonnes[2];
 newDoc.getField("Heure AN").value=colonnes[3];
 newDoc.getField("Date AN").value=colonnes[4];
 newDoc.getField("Civilite").value=colonnes[5];
 var email=colonnes[6];
 // Table des e-mails
 lesEmails.push(email);[b]
// Enregistrement "NomDuFichier (nom prenom).pdf"[/b]
 var leChemin=cheminSansExt+" ("+colonnes[0]+").pdf";
 lesChemins.push(leChemin);
 newDoc.saveAs(leChemin);
 // Fermeture du fichier
 newDoc.closeDoc();

Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 03 février 2020 : 19:15
- S'il te plait, essaye de faire des copier-coller "TXT" ou bien de nettoyer tes messages parce-qu'à chaque fois je dois enlever des kilomètres de :
[color=rgb(0, 0, 0)][font=Times New Roman][/size][/font][/color][left][color=rgb(0, 0, 0)][font=Times New Roman][/font][/color][/left]
[color=rgb(0, 0, 0)][font=Times New Roman][/size][/font][/color][left][color=rgb(0, 0, 0)][font=Times New Roman][size=16px]
etc.
 :geek:


- Tu avais presque bon, mais dans ce script il faut remplacer this par newDoc :
 :Smiley03:

// remplissage des champs
newDoc.getField("Nom").value=colonnes[0];
newDoc.getField("Heure FR").value=colonnes[1];
newDoc.getField("Date FR").value=colonnes[2];
newDoc.getField("Heure AN").value=colonnes[3];
newDoc.getField("Date AN").value=colonnes[4];
newDoc.getField("Civilite").value=colonnes[5];
var email=colonnes[6];
// Table des e-mails
lesEmails.push(email);
newDoc.flattenPages();
// Enregistrement "NomDuFichier (nom prenom).pdf"
var leChemin=cheminSansExt+" ("+colonnes[0]+").pdf";
lesChemins.push(leChemin);
newDoc.saveAs(leChemin);
// Fermeture du fichier
newDoc.closeDoc();
Titre: Re : Publipostage PDF avec Excel
Posté par: bebarth le 03 février 2020 : 21:05
Désolé, je n'ai pas reçu d'alerte...
@+
 :bonjour:
Titre: Re : Publipostage PDF avec Excel
Posté par: SBLONDEL le 04 février 2020 : 13:26

Merci à tous les deux cela fonctionne.
Stéphanie
Titre: Re : Publipostage PDF avec Excel
Posté par: Merlin le 04 février 2020 : 14:05
 :bonjour: