Aller au contenu principal

Fusion automatique de tous les PDF déposés dans un dossier Dropbox avec Power Automate : un flux de travail dynamique en 6 étapes

· 25 minutes de lecture
SEO and Content Writer

Le plus pénible avec les tickets « fusionner ces PDF », ce n'est pas la fusion en elle-même, c'est… savoir ce qui se trouve dans le dossier au moment de l'exécutionLes noms changent, les fichiers apparaissent et disparaissent, quelqu'un ajoute un cinquième document à 16h55. Ce guide pas à pas reproduit exactement ce schéma. Power Automate avec PDF4me Fusionner plusieurs fichiers PDF, DropboxUne seule action « Appliquer » à chaque boucle. Six actions de flux. Aucun nom de fichier codé en dur. Chaque PDF présent dans le dossier surveillé est assemblé dès l'arrivée d'un nouveau fichier, et le nom du fichier de sortie indique le nombre de fichiers traités, ce qui permet d'identifier chaque exécution de manière unique.

Aperçu du flux
1. When a file is created
Dropbox trigger on /blog data/merge files dropbox. Fires the moment any file lands.
2. List files in folder
Dropbox action on the same folder. Returns every current file as an array of metadata objects.
3. Initialize variable
Name Files, Type Array. Buffer for the binary content of every file.
4. Apply to each
Loop body(List_files_in_folder). Inside, Get file content by Id, then Append to array with base64ToBinary on $content.
5. Merge multiple PDFs
PDF4me action. Body/docContent the Files array, Output File Name Output.pdf. One consolidated PDF out.
6. Create file
Dropbox /blog data/merge blog template/output. File Name expression concat(merge-, length(List_files_in_folder), .pdf).
La version courte

UN Lorsqu'un fichier est créé Le déclencheur Dropbox s'active à chaque nouveau téléchargement. Lister les fichiers du dossier renvoie un instantané de chaque fichier actuellement présent dans le dossier (dans cette exécution, quatre fichiers PDF : Exemple de PDF.pdf, exemple_3_page.pdf, exemple_pdf.pdf, exemple.pdf). Une boucle Apply parcourt cette liste et appelle Récupérer le contenu du fichier par Id, et pousse base64ToBinary(body('Get_file_content')?['$content']) sur une variable de tableau nommée Fichiers. PDF4me Fusionner plusieurs fichiers PDF Consomme le tableau et génère un PDF. Dropbox Créer un fichier réécrit-il comme fusion-4.pdf, car il y avait quatre fichiers d'entrée. Ajoutez un cinquième fichier demain et la prochaine exécution produira fusion-5.pdf automatiquement.

Questions et réponses basées sur le pourquoi

Pourquoi utiliser simultanément le déclencheur et la liste des fichiers du dossier ? Le déclencheur vous fournit un seul événement de nouveau fichier, mais pas une liste garantie et à jour de tout le reste du dossier. Lister les fichiers du dossier Il capture l'état actuel au moment de l'exécution, de sorte que la fusion reflète toujours exactement ce qui se trouve sur le disque à l'instant présent, et non ce qui s'y trouvait lorsque le déclencheur a été activé ou lorsque le flux a été conçu.

Pourquoi récupérer par ID plutôt que par chemin ? Les noms de fichiers peuvent entrer en conflit ou changer. Les identifiants Dropbox sont stables, uniques et ne peuvent pas être renommés. Identifiant à partir des fichiers de liste dans Récupérer le contenu du fichier Cela signifie que la boucle continue de fonctionner même si un utilisateur renomme un fichier en cours de traitement par lots, ou si deux fichiers ont le même nom d'affichage dans des sous-dossiers différents.

Pourquoi base64ToBinary(...) sur $content? Dropbox Récupérer le contenu du fichier renvoie le fichier sous forme de chaîne base64 enveloppée dans un $content La propriété « Fusionner plusieurs fichiers PDF » de PDF4me attend une collection de tampons binaires, et non des chaînes base64. base64ToBinary(body('Get_file_content')?['$content']) est le pont qui convertit chaque fichier dès son arrivée dans le tableau.

Pourquoi construire le nom du fichier de sortie avec concaténer() et longueur()? Encodage dur Résultat.pdf signifie que chaque exécution écrase la précédente. concat('merge-', string(length(body('List_files_in_folder'))), '.pdf') le numéro du fichier est intégré au nom, de sorte que les exécutions consécutives se retrouvent sous la forme fusion-3.pdf, fusion-4.pdf, fusion-5.pdfBonus : un simple coup d’œil au dossier de sortie vous indique le nombre de fichiers inclus à chaque fois.


Ce que vous obtiendrez

Saisir: Un dossier Dropbox à /blog data/merge files dropbox contenant tous les fichiers PDF que vous y déposez. Ce guide utilise quatre : PDFA_Sample.pdf, sample_3_page.pdf, sample_pdf.pdf, sample.pdf. Sortir: Un seul PDF consolidé dans /blog data/merge blog template/output/ nommé merge-N.pdfN Le nombre de fichiers affiché correspond au nombre de fichiers au moment de l'exécution. Déposez d'autres fichiers ; ils seront automatiquement pris en compte lors de la prochaine exécution.

Le dossier Dropbox avant l'exécution

Le dossier Dropbox /blog data/merge files contient quatre fichiers PDF triés par nom : PDFA_Sample.pdf (16,5 Ko), sample_3_page.pdf (2,48 Ko), sample_pdf.pdf (2,14 Ko) et sample.pdf (97,67 Ko). Tous sont configurés avec l’option « Accès réservé à vous ».

Le dossier Dropbox après l'exécution

Le dossier de sortie Dropbox contient les fichiers merge-3.pdf (37,22 Ko) et merge-4.pdf (110,78 Ko), chacun étant nommé d'après le nombre de fichiers inclus dans le périmètre lors de l'exécution du flux.

La deuxième exécution comportait quatre fichiers dans le dossier, donc le résultat est : fusion-4.pdfLa précédente série en comptait trois.


Ce dont vous avez besoin

  • Power Automate. Ouvrir Power Automate. Tout forfait incluant des connecteurs premium (PDF4me Connect est premium).
  • Clé API PDF4me. Obtenez votre clé APIConnectez-le la première fois que vous ajoutez une action PDF4me.
  • DropboxLe dossier source contient les fichiers PDF d'entrée, tandis que le dossier de destination contient les fichiers fusionnés. SharePoint, OneDrive et Google Drive fonctionnent de manière identique grâce à leurs connecteurs respectifs.
  • Quelques PDFToutes tailles, toutes combinaisons. La démonstration utilise quatre exemples : Exemple de PDF.pdf, exemple_3_page.pdf, exemple_pdf.pdf, exemple.pdfDéposez-les pour reproduire chaque capture d'écran.

Commencez par récupérer les données d'entrée et la sortie attendue. Téléchargez les quatre échantillons dans /données du blog/fusionner les fichiers Dropbox sur votre Dropbox, puis publiez le flux. Votre première exécution devrait produire un fusion-4.pdf identique à celui dont le lien est fourni ici.


Aperçu du flux

  1. Dropbox : Lorsqu'un fichier est créé (déclenchement).
  2. Dropbox : Lister les fichiers du dossierRenvoie tous les fichiers actuellement présents dans le dossier surveillé.
  3. Variable d'initialisation nommé Files (Tableau).
  4. Appliquer à chaque sur body('List_files_in_folder'):
    • Dropbox : Obtenir le contenu du fichier par Id.
    • Ajouter à la variable de tableau avec base64ToBinary(body('Get_file_content')?['$content']).
  5. PDF4me : Fusionner plusieurs fichiers PDF en un seul fichier PDF. Files dans, Output.pdf dehors.
  6. Dropbox : Créer un fichier. Nom de fichier concat('merge-', string(length(body('List_files_in_folder'))), '.pdf').

Aperçu complet du flux

Le canevas de flux Power Automate affiche six actions empilées de haut en bas : Création d’un fichier, Lister les fichiers du dossier, Initialiser une variable, Appliquer à chaque élément contenant le contenu du fichier, Récupérer le contenu du fichier et l’ajouter à la variable tableau (itération 4 fois), Fusionner plusieurs fichiers PDF en un seul, Créer un fichier

Six actions. L'option « Appliquer à chaque carte » affiche « 1 sur 4 » car le dossier surveillé contenait quatre fichiers PDF au moment de l'exécution.


Étape 1 : Dropbox : Lorsqu’un fichier est créé (déclencheur)

Flux jusqu'à présent : Déclencheur uniquement.

  1. Dans Power Automate cliquez Créer, choisir Flux cloud automatisé.
  2. Nommez le flux (par exemple, Auto-Merge Dropbox Folder), prendre Dropbox : Lorsqu'un fichier est créé comme déclencheur, cliquez Créer.
  3. Connecter Dropbox si vous ne l'avez pas déjà fait.
  4. Configure:
    • Dossier: /blog data/merge files dropbox
    • Paramètres avancés: laisser la valeur par défaut (0 sur 1 affiché).

Configuration du déclencheur

Power Automate Dropbox : Déclencheur « Lorsqu’un fichier est créé » avec le dossier défini sur /blog data/merge files dropbox et les paramètres avancés réduits affichant 0 sur 1. Connecté à Dropbox.

Le déclencheur interroge le dossier surveillé et s'active à chaque nouveau chargement. La fréquence d'interrogation par défaut varie selon l'abonnement, généralement de 1 à 5 minutes.


Étape 2 : Dropbox : Lister les fichiers du dossier

Flux jusqu'à présent : Déclencheur plus Lister les fichiers du dossier.

Le déclencheur s'active à la création d'un seul nouveau fichier. La fusion nécessite tous les fichiers PDF présents dans le dossier. Lister les fichiers du dossier prend un instantané du contenu du dossier lors de l'exécution.

  1. Cliquez + Nouvelle étape, recherche Dropbox, prendre Lister les fichiers du dossier.
  2. Configure:
    • Dossier: /blog data/merge files dropbox (le même chemin que le déclencheur)

Configuration des fichiers de liste

Action Power Automate Dropbox : lister les fichiers d'un dossier avec le dossier défini sur /blog data/merge files dropbox, connecté à Dropbox
  1. L'action se termine body('List_files_in_folder'), un tableau d'objets de métadonnées de fichier. Chaque objet contient Id, Name, DisplayName, Path, LastModified, et SizeL'étape suivante consiste à parcourir ce tableau.

Conseil. Si votre dossier contient des éléments variés (PDF, images et documents Office) et que vous souhaitez uniquement fusionner les PDF, ajoutez un Tableau de filtres action après cette étape avec l'expression se termine par (en minuscules(élément()?['Nom']), '.pdf') et alimenter la boucle avec le tableau filtré.


Étape 3 : Initialiser les fichiers de variables

Flux jusqu'à présent : Déclencheur + Liste des fichiers + Initialisation de la variable.

L'action de fusion requiert une collection de fichiers binaires. Allouez un tableau vide pour les collecter.

  1. Cliquez + Nouvelle étape, prendre Variable d'initialisation.
  2. Configure:
    • Nom: Files
    • Taper: Array
    • Valeur: laisser vide

Initialiser la configuration des variables

Action d'initialisation de variable Power Automate configurée avec le nom Fichiers et le type Tableau et un champ Valeur vide

Étape 4 : Appliquer à chaque fichier, obtenir son contenu et l’ajouter au tableau

Flux jusqu'à présent : Déclencheur + Liste des fichiers + Initialisation de la variable + Appliquer à chaque.

Voici le cœur du flux. Parcourir chaque fichier renvoyé par l'instantané, récupérer ses octets, les convertir en binaire, puis les envoyer vers Files.

Étape 4a : Appliquer à chaque (choisir la source)

  1. Cliquez + Nouvelle étape, prendre Appliquer à chaque.
  2. Configure:
    • Sélectionnez une sortie parmi les étapes précédentes (expression): body('List_files_in_folder')
Power Automate applique à chaque action l'option « Sélectionner une sortie des étapes précédentes » définie sur l'expression « body » (guillemet ouvrant List_files_in_folder guillemet fermant parenthèse). Le jeton « Body » de « List files in folder » est affiché.

Étape 4b : Récupérer le contenu du fichier (à l’intérieur de la boucle)

  1. À l'intérieur de la boucle, cliquez Ajouter une action, prendre Dropbox : Obtenir le contenu du fichier.
  2. Configure:
    • Déposer: choisissez le Identifiant jeton issu de la liste des fichiers dans le contenu dynamique du dossier (il est automatiquement résolu en l'identifiant de l'élément actuel).
    • Déduire le type de contenu: Yes (sous Paramètres avancés)
Action « Obtenir le contenu d'un fichier » de Power Automate Dropbox avec le fichier défini sur le jeton d'identification de la liste des fichiers du dossier, paramètre avancé « Déduire le type de contenu » activé : un panneau de contenu dynamique s'ouvre à droite, affichant les jetons d'identification, de nom, de nom d'affichage, de chemin, de dernière modification et de taille de la liste des fichiers du dossier.

Étape 4c : Ajouter à la variable de tableau (à l’intérieur de la boucle)

  1. Ci-dessous, récupérer le contenu du fichier, Ajouter une action, prendre Ajouter à la variable de tableau.
  2. Configure:
    • Nom: Files
    • Valeur (expression, clic) fx): base64ToBinary(body('Get_file_content')?['$content'])
Power Automate : Ajouter à une variable de tableau dans une boucle Appliquer à chaque, Nom : Fichiers, Valeur : définie sur l’expression base64ToBinary body (guillemet ouvrant Get_file_content, guillemet fermant, parenthèse fermante, question, dollar, contenu, crochet fermant) affichée dans l’éditeur d’expressions

C'est le fil conducteur qui relie tout. Dropbox renvoie chaque fichier sous forme de { "$content": "<base64 string>", "$content-type": "application/pdf" }L'action de fusion requiert un tampon binaire. base64ToBinary(...) sur $content Permet de faire le lien entre les deux. Ignore la conversion et l'action de fusion qui génère des erreurs de « contenu invalide ».


Étape 5 : PDF4me : Fusionner plusieurs fichiers PDF en un seul fichier PDF

Flux jusqu'à présent : Déclencher plus Lister les fichiers plus Initialiser la variable plus Appliquer à chaque plus Fusionner plusieurs PDF.

L'ensemble des données est entré et un seul fichier PDF est généré.

  1. Sous le bouton Appliquer à chaque boucle + Nouvelle étape, recherche PDF4me, prendre Fusionner plusieurs fichiers PDF en un seul fichier PDF.
  2. Connecter PDF4me Connectez-vous avec votre clé API (première fois uniquement).
  3. Configure:
    • Corps/docContenu: choisissez le Files jeton variable
    • Nom du fichier de sortie: Output.pdf

Configuration de l'action de fusion

L'action Power Automate PDF4me Fusionner plusieurs fichiers PDF en un seul fichier PDF, avec Body/docContent défini sur la variable Files et le nom de fichier de sortie Output.pdf, ouvre un panneau de contenu dynamique affichant les variables Files, Appliquer à chaque, Élément actuel, Lister les fichiers du dossier et Corps.
  1. Les fichiers PDF sont concaténés dans ordre du tableau, c'est-à-dire l'ordre dans lequel Dropbox les a renvoyés (généralement par ordre alphabétique). Si vous avez besoin d'un ordre différent, triez body('List_files_in_folder') avec un Sélectionner action avant la boucle, par exemple par LastModified du plus récent au plus ancien.

Conseil. L'intérieur Résultat.pdf Le nom correspond au titre des métadonnées du PDF, et non au nom du fichier Dropbox. Le nom Dropbox réel est défini à l'étape 6. Conservez cette valeur comme variable temporaire afin de pouvoir rechercher les exécutions de flux correspondantes dans l'historique d'exécution de Power Automate.


Étape 6 : Dropbox : Créer un fichier avec un nom de fichier dynamique

Flux jusqu'à présent : Déclencher plus Lister les fichiers plus Initialiser la variable plus Appliquer à chaque plus Fusionner plusieurs PDF plus Créer un fichier.

Réenregistrez le PDF fusionné sur Dropbox avec un nom de fichier calculé dynamiquement qui inclut le nombre de fichiers.

  1. Cliquez + Nouvelle étape, prendre Dropbox : Créer un fichier.
  2. Configure:
    • Chemin du dossier: /blog data/merge blog template/output
    • Nom de fichier (expression, clic) fx): concat('merge-', string(length(body('List_files_in_folder'))), '.pdf')
    • Contenu du fichier: choisissez le Contenu du fichier jeton de l'action Fusionner plusieurs PDF

Expression du nom de fichier

Action de création de fichier Power Automate Dropbox : Chemin du dossier /blog data/merge blog template/output, Nom de fichier expression concat parenthèse ouvrante merge dash comma string parenthèse ouvrante longueur parenthèse ouvrante corps guillemet ouvrant List_files_in_folder guillemet fermant guillemet fermant parenthèse fermante virgule point pdf fermant parenthèse fermante, Contenu du fichier issu de l'action de fusion

Action finale prête

Action Power Automate Dropbox Créer un fichier avec le chemin du dossier /blog data/merge blog template/output, expression de concaténation du jeton Nom de fichier, jeton Contenu du fichier provenant de l'action Fusionner plusieurs fichiers PDF en un seul fichier PDF, panneau de contenu dynamique affichant le contenu du fichier, les jetons headers/FileName et headers/PageCount

La même expression révèle également en-têtes/Nombre de pages sur le résultat de la fusion, utile si vous souhaitez enregistrer le nombre de pages que contient le PDF consolidé.

Conseil. Si vous préférez horodater l'exécution plutôt que d'indiquer le nombre de fichiers, remplacez l'expression par concat('merge-', utcNow('yyyy-MM-dd-HHmmss'), '.pdf')Les fichiers atterrissent sous forme de fusion-2026-06-12-094501.pdf et les rediffusions ne se chevauchent jamais.


Exécutez le flux et vérifiez

  1. Sauvegarder le flux en haut à droite.
  2. Déposez un fichier (ou quatre) dans /blog data/merge files dropboxN'importe quelle valeur fera l'affaire, l'intervalle d'interrogation déclenche l'action en quelques minutes.
  3. Ouvrez le Historique des courses En haut à droite, les actions deviennent vertes. L'option « Appliquer à chaque » devrait afficher le nombre d'itérations correct, par exemple « 1 sur 4 » si le dossier contient quatre fichiers.
  4. Ouvrez Dropbox à /blog data/merge blog template/output/Un fichier nommé merge-4.pdf Il vous attend. Ouvrez-le : tous les PDF du dossier d’entrée sont assemblés en un seul document.

Qu'avez-vous construit concrètement ? Un pipeline de consolidation entièrement automatisé qui réagit à chaque nouveau chargement, analyse l'état complet du dossier en temps réel et génère un unique PDF contenant tous les fichiers. Aucune liste codée en dur, aucun traitement par lots planifié, aucun clic manuel. Ce processus gère aussi bien 4 PDF que 400 sans aucune modification. Il est également compatible avec Make (itérateur sur la liste des fichiers Dropbox) et Zapier (boucle sur les résultats de recherche de fichiers).


Variantes courantes que vous pouvez ajouter sans reconstruction

Filtrer uniquement pour les PDF
Insérer un Tableau de filtres action entre l'étape 2 et l'étape 3 avec se termine par (en minuscules(élément()?['Nom']), '.pdf')La boucle ignore ensuite les fichiers .docx, .png et tout autre fichier présent dans le dossier.
Trier par ordre chronologique inverse (du plus récent au plus ancien).
Ajouter un Sélectionner action qui mappe la liste et trie avec trier(corps('List_files_in_folder'), 'DernièreModification'). Inverser avec inverse(...) si vous souhaitez que les éléments les plus récents apparaissent en haut du PDF fusionné.
Convertir en PDF/A après la fusion
Insérer PDF4me Créer un PDF/A entre l'étape 5 et l'étape 6 avec la conformité PDF/A-2bLes fichiers déposés dans Dropbox sont désormais conformes à la norme d'archivage ISO 19005.
Fichiers sources d'archive
Après l'étape 6, ajoutez un autre Appliquer à chaque Liste des fichiers et appel à Dropbox Déplacer le fichier pour transformer chaque entrée en /traitéLa prochaine exécution ne prendra en compte que les nouveaux téléchargements.

Dépannage

Fusionner les erreurs d'action avec « contenu invalide »

Ajouter au tableau Valeur L'expression n'est pas enveloppée dans base64ToBinary(...)Sans conversion, le tableau contient des chaînes base64 au lieu de tampons binaires, et PDF4me les rejette. Rouvrez « Ajouter au tableau », passez à l’éditeur d’expressions et collez. base64ToBinary(body('Get_file_content')?['$content']) textuellement.

Appliquer à chaque exécution zéro fois

Le déclencheur a fonctionné, mais la commande List Files a renvoyé un tableau vide. Vérifiez le déclencheur et la commande List Files. Dossier Les valeurs sont identiques. Les différences de chemin (l'un avec une barre oblique finale, l'autre sans) en sont une cause fréquente.

Le nom du fichier apparaît comme fusion-.pdf

Le longueur() L'appel n'a pas été résolu au moment de la conception. Assurez-vous d'avoir collé l'expression dans le Nom de fichier champ via le fx L'éditeur d'expressions est utilisé, et non le mode texte brut. En mode texte brut, les accolades sont interprétées littéralement et la fonction n'est jamais exécutée.

La sortie écrase l'exécution précédente.

Deux exécutions consécutives avec le même nombre de fichiers produisent des noms identiques (fusion-4.pdf). Soit remplacer l'expression par un horodatage (concat('merge-', utcNow('yyyy-MM-dd-HHmmss'), '.pdf')) ou ajouter un GUID avec guid().


Prochaines étapes

Le même processus en six étapes (observation, puis liste, boucle vers tableau, fusion, puis enregistrement avec un nom d'exécution) gère toute automatisation de type « réaction à un dossier ». Déposez un nouveau fichier demain : l'exécution le détectera. Aucune modification, aucun redéploiement.