Unione automatica di tutti i PDF trascinati in una cartella Dropbox in Power Automate: un flusso di lavoro dinamico in 6 fasi

La parte dolorosa dei ticket "unisci questi PDF" non è l'unione, è sapere cosa c'è nella cartella in fase di esecuzione. I nomi cambiano, i file vanno e vengono, qualcuno aggiunge un quinto documento alle 16:55. Questa procedura dettagliata crea lo schema esatto in Power Automate con PDF4me: Unisci più file PDF, Dropboxe un singolo Apply per ogni ciclo. Sei azioni di flusso. Nessun nome file hardcoded. Ogni PDF attualmente presente nella cartella monitorata viene unito nel momento in cui viene aggiunto un nuovo file e il nome di output contiene il conteggio del file in modo che ogni esecuzione sia identificabile in modo univoco.
UN Quando viene creato un file Il trigger di Dropbox si attiva ad ogni nuovo caricamento. Elenca i file nella cartella restituisce un'istantanea di ogni file attualmente presente nella cartella (in questa esecuzione, quattro PDF: PDF_Sample.pdf, esempio_3_pagina.pdf, sample_pdf.pdf, esempio.pdf). Un'applicazione ad ogni ciclo percorre quell'elenco, chiama Ottieni il contenuto del file tramite Id e spinge base64ToBinary(body('Get_file_content')?['$content']) su una variabile array denominata File. PDF4me Unire più file PDF consuma l'array ed emette un PDF. Dropbox Crea file lo riscrive come merge-4.pdf, perché c'erano quattro file di input. Aggiungi un quinto file domani e la prossima esecuzione produce merge-5.pdf automaticamente.
Domande e risposte basate sul "perché"
Perché utilizzare insieme il trigger e l'elenco dei file nella cartella? Il trigger genera un singolo evento di creazione di un nuovo file, ma non garantisce un elenco aggiornato di tutto il resto presente nella cartella. Elenca i file nella cartella Cattura lo stato corrente in fase di esecuzione, quindi l'unione riflette sempre esattamente ciò che è presente sul disco in quel momento, non ciò che era presente quando si è attivato il trigger o quando è stato progettato il flusso.
Perché recuperare i dati tramite ID invece che tramite percorso? I nomi dei file possono entrare in conflitto o cambiare. Gli ID di Dropbox sono stabili, univoci e immuni alla ridenominazione. Mappatura Id da Elenca file in Ottieni il contenuto del file significa che il ciclo continua a funzionare anche se un utente rinomina un file a metà dell'elaborazione o se due file hanno lo stesso nome visualizzato in sottocartelle diverse.
Perché base64ToBinary(...) SU $content? Dropbox Ottieni il contenuto del file restituisce il file come stringa base64 racchiusa in un $content proprietà. L'azione "Unisci più file PDF" di PDF4me si aspetta una raccolta di buffer binari, non stringhe base64. base64ToBinary(body('Get_file_content')?['$content']) è il ponte che converte ogni file nel momento in cui arriva nell'array.
Perché costruire il nome del file di output con concat() E lunghezza()? Codifica rigida Output.pdf significa che ogni esecuzione sovrascrive la precedente. concat('merge-', string(length(body('List_files_in_folder'))), '.pdf') imprime il conteggio del file nel nome, in modo che le esecuzioni consecutive appaiano come merge-3.pdf, merge-4.pdf, merge-5.pdfBonus: una rapida occhiata alla cartella di output ti dice quanti file erano inclusi ogni volta.
Cosa riceverai
Ingresso: Una cartella Dropbox a /blog data/merge files dropbox Contiene tutti i file PDF che ci inserisci. Questa guida ne utilizza quattro: PDFA_Sample.pdf, sample_3_page.pdf, sample_pdf.pdf, sample.pdf. Produzione: Un unico PDF consolidato in /blog data/merge blog template/output/ denominato merge-N.pdf Dove N indica il numero di file al momento dell'esecuzione. Trascina altri file e l'esecuzione successiva li rileverà automaticamente.
La cartella Dropbox prima dell'esecuzione

La cartella Dropbox dopo l'esecuzione

La seconda esecuzione aveva quattro file nella cartella, quindi l'output è merge-4.pdf. La corsa precedente ne aveva tre.
Di cosa hai bisogno
- Power Automate. Open Power AutomateQualsiasi piano con connettori premium (PDF4me Connect è un piano premium).
- Chiave API di PDF4me. Ottieni la tua chiave APICollegalo la prima volta che aggiungi un'azione PDF4me.
- DropboxCartella di origine per i PDF di input, cartella di destinazione per l'output unito. SharePoint, OneDrive e Google Drive funzionano in modo identico con i rispettivi connettori.
- Una manciata di PDFQualsiasi dimensione, qualsiasi combinazione. La procedura guidata utilizza quattro esempi: PDF_Sample.pdf, esempio_3_pagina.pdf, sample_pdf.pdf, esempio.pdf. Trascinali per replicare ogni screenshot.
Prendi prima l'insieme di input e l'output previsto. Scarica i quattro campioni in /blog data/merge files dropbox sul tuo Dropbox, quindi pubblica il flusso. La tua prima esecuzione dovrebbe produrre un merge-4.pdf identico a quello collegato qui.
Il flusso in sintesi
- Dropbox: Quando viene creato un file (grilletto).
- Dropbox: Elenca i file nella cartellaRestituisce tutti i file attualmente presenti nella cartella monitorata.
- Inizializza variabile denominato
Files(Vettore). - Applicare a ciascuno SU
body('List_files_in_folder'):- Dropbox: Ottieni il contenuto del file di
Id. - Aggiungi alla variabile array con
base64ToBinary(body('Get_file_content')?['$content']).
- Dropbox: Ottieni il contenuto del file di
- PDF4me: Unisci più file PDF in un unico file PDF.
FilesIn,Output.pdffuori. - Dropbox: crea fileNome del file
concat('merge-', string(length(body('List_files_in_folder'))), '.pdf').
Panoramica completa del flusso

Sei azioni. L'opzione "Applica a ciascuna scheda" mostra "1 di 4" perché la cartella monitorata conteneva quattro file PDF al momento dell'esecuzione.
Passaggio 1: Dropbox: Quando viene creato un file (Attivatore)
Flusso finora: Solo attivazione.
- In Power Automate clic Creare, scegliere Flusso di nuvole automatizzato.
- Assegna un nome al flusso (ad esempio
Auto-Merge Dropbox Folder), scegliere Dropbox: Quando viene creato un file come trigger, fai clic Creare. - Collegare Se non l'hai già fatto, usa Dropbox.
- Specificare:
- Cartella:
/blog data/merge files dropbox - Parametri avanzati: lascia l'impostazione predefinita (0 di 1 visualizzati).
- Cartella:
Configurazione del trigger

Il trigger esegue il polling della cartella monitorata e si attiva a ogni nuovo caricamento. La frequenza di polling predefinita varia a seconda del piano, in genere da 1 a 5 minuti.
Passaggio 2: Dropbox: Elenca i file nella cartella
Flusso finora: Attiva più Elenca i file nella cartella.
L'evento si attiva su un singolo nuovo file. L'unione richiede tutti i file PDF attualmente presenti nella cartella. Elenca i file nella cartella crea un'istantanea aggiornata del contenuto della cartella in fase di esecuzione.
- Fare clic + Nuovo passo, ricerca Dropbox, scegliere Elenca i file nella cartella.
- Specificare:
- Cartella:
/blog data/merge files dropbox(lo stesso percorso del trigger)
- Cartella:
Elenco dei file di configurazione

- L'azione ritorna
body('List_files_in_folder'), un array di oggetti di metadati di file. Ogni oggetto contieneId,Name,DisplayName,Path,LastModified, ESizeIl passaggio successivo consiste nell'iterare questo array.
Mancia. Se la cartella contiene contenuti misti (PDF insieme a immagini e documenti di Office) e si desidera unire solo i PDF, aggiungere un matrice di filtri azione dopo questo passaggio con l'espressione endsWith(toLower(item()?['Name']), '.pdf') e inserire invece l'array filtrato nel ciclo.
Passaggio 3: Inizializzare i file delle variabili
Flusso finora: Attiva più Elenca file più Inizializza variabile.
L'operazione di unione richiede una raccolta di file binari. Alloca un array vuoto per raccoglierli.
- Fare clic + Nuovo passo, scegliere Inizializza variabile.
- Specificare:
- Nome:
Files - Tipo:
Array - Valore: lasciare vuoto
- Nome:
Inizializza la configurazione variabile

Passaggio 4: Applica a ciascuno più Ottieni contenuto file più Aggiungi all'array
Flusso finora: Attiva più Elenca file più Inizializza variabile più Applica a ciascuno.
Questo è il cuore del flusso. Esegui un ciclo su ogni file restituito dallo snapshot, recupera i suoi byte, converti in binario, invia su Files.
Passaggio 4a: Applicare a ciascuno (selezionare la fonte)
- Fare clic + Nuovo passo, scegliere Applicare a ciascuno.
- Specificare:
- Seleziona un output dai passaggi precedenti (espressione):
body('List_files_in_folder')
- Seleziona un output dai passaggi precedenti (espressione):

Passaggio 4b: Ottenere il contenuto del file (all'interno del ciclo)
- All'interno del ciclo fai clic Aggiungi un'azione, scegliere Dropbox: Ottieni il contenuto del file.
- Specificare:
- File: scegli il Id token dall'elenco dei file nella cartella del contenuto dinamico (si risolve automaticamente nell'ID dell'elemento corrente).
- Dedurre il tipo di contenuto:
Yes(nelle impostazioni avanzate)

Passaggio 4c: Aggiungere alla variabile array (all'interno del ciclo)
- Di seguito, ottieni il contenuto del file. Aggiungi un'azione, scegliere Aggiungi alla variabile array.
- Specificare:
- Nome:
Files - Valore (espressione, clic)
fx):base64ToBinary(body('Get_file_content')?['$content'])
- Nome:

Questa è la frase che lega tutto insieme. Dropbox restituisce ogni file come { "$content": "<base64 string>", "$content-type": "application/pdf" }L'operazione di unione richiede un buffer binario. base64ToBinary(...) SU $content collega i due. Salta la conversione e l'azione di unione che genera errori con "contenuto non valido".
Passaggio 5: PDF4me: Unire più file PDF in un unico file PDF
Flusso finora: Attiva più Elenca file più Inizializza variabile più Applica a ciascuno più Unisci più PDF.
L'intera matrice viene inserita e ne esce un unico file PDF.
- Sotto "Applica a ogni ciclo" fai clic + Nuovo passo, ricerca PDF4me, scegliere Unire più file PDF in un unico file PDF.
- Collegare PDF4me Connettiti con la tua chiave API (solo la prima volta).
- Specificare:
- Corpo/docContenuto: scegli il
Filestoken variabile - Nome del file di output:
Output.pdf
- Corpo/docContenuto: scegli il
Configurazione dell'azione di unione

- I PDF sono concatenati in ordine dell'array, che è l'ordine in cui Dropbox li ha restituiti (in genere alfabetico per nome). Se hai bisogno di un ordine diverso, ordina
body('List_files_in_folder')con un Selezionare azione prima del ciclo, ad esempio tramiteLastModifiedper i più recenti.
Mancia. L'interno Output.pdf Il nome è solo il titolo dei metadati del PDF, non il nome del file di Dropbox. Il nome reale di Dropbox viene impostato al passaggio 6. Mantieni questo valore come segnaposto stabile in modo da poterlo utilizzare per cercare le esecuzioni del flusso nella cronologia di Power Automate.
Passaggio 6: Dropbox: crea un file con un nome file dinamico
Flusso finora: Attiva più Elenca file più Inizializza variabile più Applica a ciascuno più Unisci più PDF più Crea file.
Salva il PDF unito nuovamente su Dropbox con un nome file calcolato in fase di esecuzione che includa il numero di file.
- Fare clic + Nuovo passo, scegliere Dropbox: Crea file.
- Specificare:
- Percorso cartella:
/blog data/merge blog template/output - Nome del file (espressione, clic)
fx):concat('merge-', string(length(body('List_files_in_folder'))), '.pdf') - Contenuto del file: scegli il Contenuto del file token dall'azione Unisci più PDF
- Percorso cartella:
espressione del nome del file

Pronti per l'azione finale

La stessa espressione espone anche intestazioni/Numero di pagine sull'output di unione, utile se si desidera registrare il numero di pagine del PDF consolidato.
Mancia. Se preferisci contrassegnare l'esecuzione con una data anziché con un conteggio dei file, sostituisci l'espressione con concat('merge-', utcNow('yyyy-MM-dd-HHmmss'), '.pdf'). I file atterrano come merge-2026-06-12-094501.pdf e le repliche non si sovrappongono mai.
Esegui il flusso e verifica
- Salva il flusso in alto a destra.
- Inserisci un file (o quattro) in
/blog data/merge files dropboxVa bene qualsiasi cosa, l'intervallo di polling fa scattare l'allarme entro un paio di minuti. - Apri il Cronologia delle esecuzioni in alto a destra e osserva le azioni diventare verdi. Applica a ciascuno dovrebbe mostrare il conteggio corretto delle iterazioni, "1 di 4" se nella cartella sono presenti quattro file.
- Apri Dropbox all'indirizzo
/blog data/merge blog template/output/Un file denominatomerge-4.pdfè in attesa. Aprilo, tutti i PDF dalla cartella di input verranno uniti in un unico documento.
Che cosa hai costruito esattamente? Una pipeline di consolidamento automatica che reagisce a ogni nuovo caricamento, legge l'intero stato della cartella in fase di esecuzione e crea un singolo PDF con un nome univoco contenente tutti i file presenti. Nessun elenco codificato manualmente, nessun processo batch pianificato, nessun clic manuale. Lo stesso schema gestisce 4 o 400 PDF senza alcuna modifica. La stessa procedura funziona in Make (Iteratore sull'elenco di file di Dropbox) e Zapier (Ciclo di Zapier sui risultati di Ricerca file).
Varianti comuni che puoi aggiungere senza dover ricostruire
endsWith(toLower(item()?['Name']), '.pdf')Il ciclo ignora quindi i file .docx, .png e qualsiasi altro tipo di file presente nella cartella.ordina(corpo('Elenca_file_nella_cartella'), 'Ultima modifica'). Invertire con inversione(...) se desideri che i file più recenti vengano visualizzati in cima al PDF unito.PDF/A-2bL'output che viene caricato su Dropbox è ora conforme allo standard di archiviazione ISO 19005./elaborato. La successiva esecuzione visualizzerà solo i file caricati di recente.Risoluzione dei problemi
Aggiungi all'array Valore l'espressione non è racchiusa in base64ToBinary(...)Senza la conversione, l'array contiene stringhe base64 anziché buffer binari e PDF4me le rifiuta. Riapri Aggiungi all'array, passa all'editor di espressioni e incolla. base64ToBinary(body('Get_file_content')?['$content']) parola per parola.
Il trigger è stato attivato, ma l'elenco dei file ha restituito un array vuoto. Controlla il trigger e l'elenco dei file. Cartella I valori sono identici. Le discrepanze nei percorsi (uno con una barra finale, l'altro senza) sono una causa comune.
merge-.pdfIL lunghezza() La chiamata non si è risolta in fase di progettazione. Assicurati di aver incollato l'espressione nel Nome del file campo tramite il effetti speciali Editor di espressioni, non come testo semplice. Il testo semplice lascia le parentesi graffe come caratteri letterali e la funzione non viene mai eseguita.
Due esecuzioni consecutive con lo stesso numero di file producono nomi identici (merge-4.pdf). Oppure scambia l'espressione con un timestamp (concat('merge-', utcNow('yyyy-MM-dd-HHmmss'), '.pdf')) o aggiungere un GUID con guid().
Prossimi passi
Lo stesso schema in sei fasi (monitora, poi elenca, poi esegui un ciclo su un array, poi unisci, poi salva con un nome di runtime) gestisce qualsiasi automazione "reagisci a una cartella". Aggiungi un nuovo file domani, l'esecuzione lo rileverà. Nessuna modifica, nessuna nuova distribuzione.