Renommer un grand nombre de pdf différemment? [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
2 décembre 2013
-
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
-
Bonjour,

J'aimerais renommer un grand nombre de fichiers pdf avec des noms différents.
Je vous explique, j'ai fait un publipostage et me suis retrouvée avec un fichier word avec pleins de pages les une à la suite des autres (jusque là tout est normal). Je dois envoyer chaque page (qui est une lettre nominative) par mail en pièce jointe, donc pour être sure que tous mes destinataires puissent l'ouvrir j'ai converti mon fichiers word en pdf et ai obtenu un pdf identique à mon fichier word.
Pour séparer chaque lettre et les garder en pdf j'ai utilisé "PDF split and Merge" (très pratique d'ailleurs!). Mais maintenant je me retrouve avec des centaines de fichiers pdf qui ont pour nom seulement des numéros et je ne sais pas quel numéro correspond à quel personne...Je voudrais donc renommer ces pdf avec les noms des gens à qui ils sont adressés.....Une idée pour m'aider?? J'espère que ma question est claire...!! Merci pour votre aide!! J'offre en récompense à celui qui trouvera toute ma gratitude et un bounty!! ^^

8 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 146
Bonjour,
Tu devrais d'abord vérifier si les pages PDF ont étés splitées dans le même ordre que les pages de ton fichier Word
Je veux dire, voir si la page1 de ton .doc correspond au 1.Pdf, la page 2 au 2.pdf etc.
Si oui, boucler sur les pages du .doc y rechercher le nom et renommer le pdf du N° de page avec le nom.
Les pages du .doc ont toutes la même structure ?
A+
Messages postés
10
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
2 décembre 2013
2
Bonjour et merci pour ta réponse. J'ai déjà regardé effectivement et ça ne correspond pas. au début tout va bien et puis à un moment, j'ai pas trouver à partir de quel numéro, ça beugue!!
Sinon oui toutes les pages .doc ont la même structure!
Tu penses à quelque chose pour m'aider?

Merci beaucoup de ton aide.
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 146
J'ai chercher une solution mais renommer les pdf en fonction du contenu me parais impossible, l'activeX est protégé et le texte est crypté.
Une solution serait de partir de ton fichier Word.
Lire page par page, copier la page dans un nouveau document rechercher le nom dans la page et sauver ce document en pdf ensuite le détruire.
Ca c'est possible mais je ne connais pas la syntaxe du VBA Word pour réaliser une macro qui fait ça.
J'ai tester en manuel et c'est effectivement possible.
Fais un autre topic en axant ta demande en ce sens.
A+
Messages postés
53310
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
23 février 2021
15 332
Et si tu recommençais tout en faisant un publipostage normal ?

En lançant l'assistant "Démarrer la fusion et le publipostage", choisir "Messages électroniques" avant de démarrer "Assistant fusion et publipostage pas à pas".
Messages postés
10
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
2 décembre 2013
2
Huum....merci lermite, je vais essayer de faire ce que tu dis, mais j'ai plus de 1000 pages....ça va me prendre quelques heures.
Merci aussi à toi Raymond, je vais également essayer de voir ce que tu proposes.
Messages postés
44
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
17 mai 2018
22
Télécharge Ant renamer http://www.antp.be/software/renamer/fr/

il permet de renommer/modifier les noms de fichiers en masse

dans ton cas, il faut que tu utilises la fonction "Take names from list" dans la section "Actions"
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 146
Re,
Salut Raymond,
Non, le processus pourrait être fait en VBA mais le VBA de Word que je ne connais pas.
Damiens -> sont problème (également en VBA) n'est pas de renommer les fichiers ce qui ne pose aucun problème, mais de savoir quel nom leurs attribués.
A+
Messages postés
44
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
17 mai 2018
22
eh bien il suffit d'en faire la liste dans un fichier texte qui servira d'entrée à ANT Renamer que je suggère.

pasdouéemaisçapeuts'arranger, peux tu donner un extrait de ton fichier ? Comme la disposition de tes données dans le word est régulière, il peut être aisé de récupérer les noms et en faire une liste

Restera ensuite le problème de l'ordre des PDF vs Word
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
833
Bonjour à tous,

Pour traiter ce genre de problème automatiquement, j'utilise VBA Excel et un "petit" logiciel DOS : PDFTOTEXT.EXE (je crois que c'est contenu dans PDFTK)

Le principe est le suivant :
1) je boucle sur tous les pdf d'un répertoire (un DIR et une boucle While)
v_Mes_Pdf = Dir("répertoire\*.pdf")
If v_Mes_Pdf = "" Then
      MsgBox ("Pas de fichiers page à traiter")
Else
      While v_Mes_Pdf <> ""
           ........
           ........
           ........
           v_Mes_Pdf =DIR 
      Wend
End If

2) pour chaque pdf,

2.1) je crée une commande DOS que je lance à partir d'Excel via un WshShell.execute qui a pour but de créer un fichier TXT du contenu du PDF.
Executable = "chemin_du_programme\pdftotext.exe -layout " & """" & fichier_pdf & """"
Set wshExec = wsh.Exec(Executable)
While wshExec.Status <> WshFinished: Wend

2.2) j'ouvre ce fichier txt dans excel et je cherche l'info qui m'intéresse (nom, code, date....)
Workbooks.OpenText Filename:=Left(fichier, Len(fichier) - 4) & ".txt", origin:= _
           xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(0, 1), _
           TrailingMinusNumbers:=True

2.3) je crée le nom du pdf à partir des infos trouvées

2.4) j'enregistre le pdf en cours de traitement sous ce nom
FileCopy oldname, newname

3) nettoyage fichiers (kill et close) ouverts et pdf suivant (avec un v_Mes_Pdf =DIR avant le Wend)

Il faut quelques déclarations préalables et ajouter une référence à WshController Library.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
en début de module VBA et
Dim wshExec As IWshRuntimeLibrary.wshExec
Set wsh = New WshShell
dans la boucle

Avec ces bouts de codes, il reste un travail de finalisation qui nécessite de connaître un peu VBA.

Cordialement