Publipostage PDF avec Excel  (Lu 29787 fois) Partager ce sujet Imprimer

1 2 3 B


Laure  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 !

IP archivée


bebarth  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:

IP archivée


Laure  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 !!

IP archivée


bebarth  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:

IP archivée


Laure  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:

IP archivée


bebarth  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:

IP archivée


Laure  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:

IP archivée


bebarth  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:

IP archivée


Laure  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:

IP archivée


bebarth  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:

IP archivée


Laure  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:

IP archivée


bebarth  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:

IP archivée


Laure  13 décembre 2019 : 10:42

Bonjour,Je t'ai envoyé un MP  :Smiley01:
Merci!  :priere:

IP archivée


bebarth  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:
 

IP archivée


Laure  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:

IP archivée


bebarth  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 ???
@+


IP archivée


Laure  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:

IP archivée


bebarth  13 décembre 2019 : 17:06

Le message est dans la console...
Je me renseigne...
@+
 :bonjour:

IP archivée


Merlin  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.


IP archivée


Laure  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:

IP archivée


bebarth  13 décembre 2019 : 20:57

J'ai pensé à une autre solution.
Je regarde si ça fonctionne !!!
@+
 :bonjour:

IP archivée


bebarth  13 décembre 2019 : 22:08

Voici une autre méthode qui fonctionne bien avec les 110 lignes.
@+
 :bonjour:

IP archivée


Laure  16 décembre 2019 : 10:28

Wahou ! C'est magique !!

Merci beaucoup  :extra: :bravo:

IP archivée


leludo  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);

IP archivée


bebarth  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:

IP archivée


leludo  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.

IP archivée


SBLONDEL  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

IP archivée


bebarth  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:

IP archivée


SBLONDEL  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

IP archivée


bebarth  09 janvier 2020 : 11:24

...de retour ce soir !
Je regarde ça.
@+
 :bonjour:

IP archivée


bebarth  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:

IP archivée


bebarth  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:

IP archivée


SBLONDEL  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

IP archivée


SBLONDEL  13 janvier 2020 : 09:40

l'image suivante

IP archivée


SBLONDEL  13 janvier 2020 : 09:42

et la dernière

IP archivée


bebarth  13 janvier 2020 : 09:48

bonjour,
Peux-tu exporter ton action et me la transmettre ?
@+
 :bonjour:

IP archivée


SBLONDEL  13 janvier 2020 : 09:57


Bonjour,
C'est le fichier que j'ai extrait du forum.
Stéphanie

IP archivée


bebarth  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:

IP archivée


SBLONDEL  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

IP archivée


bebarth  13 janvier 2020 : 11:06

Pour modifier le sujet du message il va falloir le modifier dans le script :
  • Clique droit sur l'action puis "Modifier une action"
  • Double-clique sur "Executer le script JavaScript"
  • Modifier la ligne cSubject : tu emplaces "Sujet du message" par "J'écris ce que je veux comme sujet du 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?
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:

IP archivée


SBLONDEL  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

IP archivée


bebarth  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:

IP archivée


SBLONDEL  13 janvier 2020 : 14:22

bon si cela marche chez toi y'a de l'espoir, je continue à chercher.merci

IP archivée


SBLONDEL  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

IP archivée


bebarth  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:

IP archivée


SBLONDEL  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][/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]

IP archivée


bebarth  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:

IP archivée


SBLONDEL  24 janvier 2020 : 08:13

Ah mince, choux et carottes n'ont jamais fais bon ménage  :Smiley01: merci A+ Stéphanie

IP archivée


Merlin  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:

IP archivée


SBLONDEL  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."});

IP archivée


Merlin  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();

IP archivée


SBLONDEL  03 février 2020 : 16:45


cool je teste.


merci,
Stéphanie

IP archivée


SBLONDEL  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();


IP archivée


Merlin  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();

IP archivée


bebarth  03 février 2020 : 21:05

Désolé, je n'ai pas reçu d'alerte...
@+
 :bonjour:

IP archivée