Saltar al contenido principal

Combinar automáticamente todos los archivos PDF que se arrastran a una carpeta de Dropbox en Power Automate: un flujo de trabajo dinámico de 6 pasos.

· 26 min de lectura
SEO and Content Writer

La parte dolorosa de los tickets de "combinar estos PDF" no es la combinación, sino saber qué hay en la carpeta en tiempo de ejecuciónLos nombres cambian, los archivos van y vienen, alguien agrega un quinto documento a las 4:55 p. m. Este tutorial construye el patrón exacto en Power Automate con PDF4me Combina varios archivos PDF, Dropboxy una única aplicación a cada bucle. Seis acciones de flujo. Cero nombres de archivo codificados. Cada PDF que se encuentra actualmente en la carpeta supervisada se une en el momento en que llega un nuevo archivo, y el nombre de salida lleva el número de archivos para que cada ejecución sea identificable de forma única.

El flujo de un vistazo
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 versión corta

A Cuando se crea un archivo El disparador de Dropbox se activa con cada nueva carga. Listar archivos en la carpeta devuelve una instantánea de cada archivo que se encuentra actualmente en la carpeta (en esta ejecución, cuatro archivos PDF: PDF_Sample.pdf, muestra_3_página.pdf, sample_pdf.pdf, muestra.pdf). Un bucle Apply to each recorre esa lista, llama Obtener el contenido del archivo por Id, y empuja base64ToBinary(body('Get_file_content')?['$content']) en una variable de matriz llamada ArchivosPDF4me Combinar varios archivos PDF Consume el array y emite un PDF. Dropbox Crear archivo lo escribe de vuelta como fusionar-4.pdf, porque había cuatro archivos de entrada. Agregue un quinto archivo mañana y la siguiente ejecución producirá fusionar-5.pdf automáticamente.

Preguntas y respuestas basadas en el porqué

¿Por qué usar el disparador y la lista de archivos en la carpeta juntos? El disparador genera un único evento de archivo nuevo, pero no garantiza una lista actualizada de todo lo demás que hay en la carpeta. Listar archivos en la carpeta Captura el estado actual en tiempo de ejecución, por lo que la fusión siempre refleja exactamente lo que hay en el disco en este momento, no lo que había cuando se activó el disparador o cuando se diseñó el flujo.

¿Por qué obtener por ID en lugar de por ruta? Los nombres de archivo pueden entrar en conflicto o cambiar. Los ID de Dropbox son estables, únicos e inmunes al cambio de nombre. Mapeo Identificación desde Listar archivos en Obtener el contenido del archivo Esto significa que el bucle sigue funcionando incluso si un usuario cambia el nombre de un archivo a mitad del proceso, o si dos archivos tienen el mismo nombre para mostrar en subcarpetas diferentes.

Por qué base64ToBinary(...) en $contenido¿ Dropbox Obtener el contenido del archivo devuelve el archivo como una cadena base64 envuelta en un $contenido propiedad. La acción Combinar varios archivos PDF de PDF4me espera una colección de búferes binarios, no cadenas base64. base64ToBinary(body('Get_file_content')?['$content']) es el puente que convierte cada archivo en el momento en que llega al array.

¿Por qué construir el nombre del archivo de salida con concat() y longitud()¿ Codificación fija Salida.pdf significa que cada ejecución sobrescribe la anterior. concat('merge-', string(length(body('List_files_in_folder'))), '.pdf') estampa el número de archivo en el nombre, por lo que las ejecuciones consecutivas se ejecutan como fusionar-3.pdf, fusionar-4.pdf, fusionar-5.pdf. Extra: un vistazo rápido a la carpeta de salida le indicará cuántos archivos estaban incluidos en el ámbito de aplicación en cada caso.


Lo que obtendrás

Aporte: Una carpeta de Dropbox en /blog data/merge files dropbox Contiene cualquier archivo PDF que arrastres dentro. Este tutorial utiliza cuatro: PDFA_Sample.pdf, sample_3_page.pdf, sample_pdf.pdf, sample.pdf. Producción: Un único PDF consolidado en /blog data/merge blog template/output/ llamado merge-N.pdf dónde N es el número de archivos en tiempo de ejecución. Si se añaden más archivos, la siguiente ejecución los recogerá automáticamente.

La carpeta de Dropbox antes de la ejecución

Carpeta de Dropbox /blog data/merge files. Listado de Dropbox con cuatro archivos PDF ordenados por nombre: PDFA_Sample.pdf 16,5 KB, sample_3_page.pdf 2,48 KB, sample_pdf.pdf 2,14 KB, sample.pdf 97,67 KB, todos configurados para que solo usted tenga acceso.

La carpeta de Dropbox después de la ejecución

La lista de carpetas de salida de Dropbox muestra merge-3.pdf (37,22 KB) y merge-4.pdf (110,78 KB), cada archivo con el nombre correspondiente al número de archivos incluidos en el ámbito de ejecución del flujo.

La segunda ejecución tenía cuatro archivos en la carpeta, por lo que la salida es fusionar-4.pdfLa carrera anterior tuvo tres.


Lo que necesitas

  • Power Automate. Abrir Power Automate. Cualquier plan con conectores premium (PDF4me Connect es premium).
  • Clave API de PDF4me. Obtén tu clave APIConéctalo la primera vez que añadas una acción de PDF4me.
  • DropboxCarpeta de origen para los archivos PDF de entrada, carpeta de destino para el resultado combinado. SharePoint, OneDrive y Google Drive funcionan de forma idéntica con sus conectores correspondientes.
  • Un puñado de archivos PDFCualquier tamaño, cualquier combinación. El tutorial utiliza cuatro ejemplos: PDF_Sample.pdf, muestra_3_página.pdf, sample_pdf.pdf, muestra.pdf. Colócalos para que reflejen cada captura de pantalla.

Primero, obtenga el conjunto de datos de entrada y el resultado esperado. Descarga las cuatro muestras en /datos del blog/combinar archivos dropbox en tu Dropbox, luego publica el flujo. Tu primera ejecución debería producir un fusionar-4.pdf idéntico al que se enlaza aquí.


El flujo de un vistazo

  1. Dropbox: Cuando se crea un archivo (desencadenar).
  2. Dropbox: Listar archivos en una carpetaDevuelve todos los archivos que se encuentran actualmente en la carpeta monitorizada.
  3. Inicializar variable llamado Files (Arreglo).
  4. Aplicar a cada uno en body('List_files_in_folder'):
    • Dropbox: Obtener el contenido del archivo por Id.
    • Agregar a la variable de matriz con base64ToBinary(body('Get_file_content')?['$content']).
  5. PDF4me: Combina varios archivos PDF en un único archivo PDF.. Files en, Output.pdf afuera.
  6. Dropbox: Crear archivo. Nombre del archivo concat('merge-', string(length(body('List_files_in_folder'))), '.pdf').

Descripción general del flujo completo

Lienzo de flujo de Power Automate que muestra seis acciones apiladas de arriba a abajo: Cuando se crea un archivo, Listar archivos en la carpeta, Inicializar variable, Aplicar a cada uno que contiene Obtener contenido del archivo y Agregar a la variable de matriz iterando 4 veces, Combinar varios archivos PDF en un solo archivo PDF, Crear archivo

Seis acciones. La opción "Aplicar a cada tarjeta" muestra "1 de 4" porque la carpeta supervisada contenía cuatro archivos PDF en el momento de la ejecución.


Paso 1: Dropbox: Cuando se crea un archivo (Activador)

Flujo hasta ahora: Solo el disparador.

  1. En Power Automate clic Crear, elegir Flujo de nube automatizado.
  2. Nombre el flujo (p. ej. Auto-Merge Dropbox Folder), elegir Dropbox: Cuando se crea un archivo como disparador, haga clic Crear.
  3. Conectar Dropbox, si aún no lo has hecho.
  4. Configurar:
    • Carpeta: /blog data/merge files dropbox
    • Parámetros avanzados: dejar en el valor predeterminado (0 de 1 mostrado).

Configuración del disparador

Power Automate Dropbox Cuando se crea un archivo, se activa con la carpeta configurada en /blog data/merge files dropbox y los parámetros avanzados colapsados muestran 0 de 1, Conectado a Dropbox

El disparador sondea la carpeta monitorizada y se activa con cada nueva carga. La frecuencia de sondeo predeterminada varía según el plan, normalmente de 1 a 5 minutos.


Paso 2: Dropbox: Listar archivos en la carpeta

Flujo hasta ahora: Activador más Lista de archivos en la carpeta.

El disparador se activa con un único archivo nuevo. La fusión requiere todos los archivos PDF que se encuentren actualmente en la carpeta. Listar archivos en la carpeta Toma una instantánea actualizada del contenido de la carpeta en tiempo de ejecución.

  1. Haga clic + Nuevo paso, buscar Dropbox, elegir Listar archivos en la carpeta.
  2. Configurar:
    • Carpeta: /blog data/merge files dropbox (la misma ruta que el disparador)

Configuración de archivos de lista

Power Automate Dropbox Listar archivos en la acción Carpeta con Carpeta configurada en /blog data/merge files dropbox, Conectado a Dropbox
  1. La acción regresa body('List_files_in_folder'), una matriz de objetos de metadatos de archivos. Cada objeto contiene Id, Name, DisplayName, Path, LastModified, y SizeEl siguiente paso itera sobre este array.

Consejo. Si su carpeta tiene contenido mixto (PDF junto con imágenes y documentos de Office) y solo desea combinar PDF, agregue un Matriz de filtros acción después de este paso con la expresión terminaCon(toLower(item()?['Nombre']), '.pdf') y en su lugar, introduce el array filtrado en el bucle.


Paso 3: Inicializar archivos de variables

Flujo hasta ahora: Disparador más Lista de archivos más Variable de inicialización.

La acción de fusión requiere una colección de archivos binarios. Asigne un array vacío para recopilarlos.

  1. Haga clic + Nuevo paso, elegir Inicializar variable.
  2. Configurar:
    • Nombre: Files
    • Tipo: Array
    • Valor: dejar en blanco

Inicializar la configuración de variables

Acción de inicialización de variable de Power Automate configurada con Nombre Archivos y Tipo Matriz y un campo Valor vacío

Paso 4: Aplicar a cada uno, obtener el contenido del archivo y agregarlo a la matriz.

Flujo hasta ahora: Disparador más Listar archivos más Inicializar variable más Aplicar a cada uno.

Este es el núcleo del flujo. Recorra cada archivo que devolvió la instantánea, obtenga sus bytes, conviértalos a binario, agréguelos a Files.

Paso 4a: Aplicar a cada uno (seleccione la fuente)

  1. Haga clic + Nuevo paso, elegir Aplicar a cada uno.
  2. Configurar:
    • Seleccione una salida de los pasos anteriores. (expresión): body('List_files_in_folder')
Power Automate Aplicar a cada acción con Seleccionar una salida de los pasos anteriores establecido en la expresión body open quote List_files_in_folder close quote close paren, el token Body de List files in folder mostrado

Paso 4b: Obtener el contenido del archivo (dentro del bucle)

  1. Dentro del bucle, haga clic Agregar una acción, elegir Dropbox: Obtener el contenido del archivo.
  2. Configurar:
    • Archivo: elige el Identificación token de los archivos de la lista en el contenido dinámico de la carpeta (se resuelve automáticamente al ID del elemento actual).
    • Inferir tipo de contenido: Yes (en Parámetros avanzados)
Acción Obtener contenido de archivo de Power Automate Dropbox con Archivo configurado en el token Id de Listar archivos en carpeta, Parámetro avanzado Inferir tipo de contenido Sí, panel de contenido dinámico abierto a la derecha que muestra los tokens Id, Nombre, Nombre para mostrar, Ruta, Última modificación, Tamaño de Listar archivos en carpeta

Paso 4c: Agregar a la variable de matriz (dentro del bucle)

  1. A continuación, obtenga el contenido del archivo. Agregar una acción, elegir Agregar a la variable de matriz.
  2. Configurar:
    • Nombre: Files
    • Valor (expresión, clic) fx): base64ToBinary(body('Get_file_content')?['$content'])
Power Automate Agregar a la variable de matriz dentro del bucle Aplicar a cada, Nombre Archivos, Valor establecido en la expresión base64ToBinary cuerpo comilla abierta Obtener_contenido_archivo comilla cerrada paréntesis cerrado interrogación dólar contenido cerrado corchete mostrado en el editor de expresiones

Esta es la frase que lo une todo. Dropbox devuelve cada archivo como { "$content": "<base64 string>", "$content-type": "application/pdf" }La acción de fusión requiere un búfer binario. base64ToBinary(...) en $contenido une los dos. Omite la conversión y la acción de fusión genera errores con "contenido no válido".


Paso 5: PDF4me: Combinar varios archivos PDF en un solo archivo PDF

Flujo hasta ahora: Activar más Listar archivos más Inicializar variable más Aplicar a cada uno más Combinar varios PDF.

Se introduce todo el conjunto de datos y se obtiene un único archivo PDF.

  1. Debajo de Aplicar a cada bucle, haga clic en + Nuevo paso, buscar PDF4me, elegir Combinar varios archivos PDF en un único archivo PDF..
  2. Conectar PDF4me Conéctate con tu clave API (solo la primera vez).
  3. Configurar:
    • Cuerpo/Contenido del documento: elige el Files token variable
    • Nombre del archivo de salida: Output.pdf

Configuración de acción de fusión

Acción de Power Automate PDF4me para combinar varios archivos PDF en un único archivo PDF con Body/docContent establecido en la variable Files y Output File Name Output.pdf, se abre el panel de contenido dinámico que muestra Variables Files, Apply to each, Current element, List files in folder, Body
  1. Los PDF se concatenan en orden de la matriz, que es el orden en que Dropbox los devolvió (normalmente alfabético por nombre). Si necesita un orden diferente, ordene body('List_files_in_folder') con un Seleccionar acción antes del bucle, por ejemplo, mediante LastModified para los más recientes primero.

Consejo. El interno Salida.pdf El nombre es simplemente el título de los metadatos del PDF, no el nombre del archivo de Dropbox. El nombre real de Dropbox se establece en el paso 6. Consérvelo como un marcador de posición estable para poder buscar ejecuciones de flujo por él en el historial de ejecuciones de Power Automate.


Paso 6: Dropbox: Crear archivo con un nombre de archivo dinámico

Flujo hasta ahora: Activar más Listar archivos más Inicializar variable más Aplicar a cada uno más Combinar varios PDF más Crear archivo.

Guarda el PDF combinado en Dropbox con un nombre de archivo calculado en tiempo de ejecución que incluya el número de archivos.

  1. Haga clic + Nuevo paso, elegir Dropbox: Crear archivo.
  2. Configurar:
    • Ruta de la carpeta: /blog data/merge blog template/output
    • Nombre del archivo (expresión, clic) fx): concat('merge-', string(length(body('List_files_in_folder'))), '.pdf')
    • Contenido del archivo: elige el Contenido del archivo token de la acción Combinar varios PDF

expresión de nombre de archivo

Power Automate Dropbox Crear acción de archivo Ruta de carpeta /blog data/merge blog template/output, Expresión de nombre de archivo concat abrir paréntesis fusionar guion coma cadena abrir paréntesis longitud abrir paréntesis cuerpo abrir comillas List_files_in_folder cerrar comillas cerrar paréntesis cerrar paréntesis coma punto pdf cerrar paréntesis, Contenido del archivo de la acción de fusión

Listo para la acción final

Acción Crear archivo de Power Automate Dropbox con Ruta de carpeta /blog data/merge blog template/output, Expresión de concatenación de token Nombre de archivo, Token Contenido de archivo de la acción Combinar varios archivos PDF en un único archivo PDF, Panel de contenido dinámico que muestra Contenido de archivo, encabezados/FileName, encabezados/PageCount tokens

La misma expresión también expone encabezados/Número de páginas en el resultado de la fusión, útil si alguna vez desea registrar cuántas páginas contiene el PDF consolidado.

Consejo. Si prefiere marcar la ejecución con una fecha en lugar de un número de archivos, cambie la expresión por concat('merge-', utcNow('yyyy-MM-dd-HHmmss'), '.pdf'). Los archivos llegan como fusionar-2026-06-12-094501.pdf y las repeticiones nunca coinciden.


Ejecuta el flujo y verifica.

  1. Ahorrar el flujo en la parte superior derecha.
  2. Arrastra un archivo (o cuatro) a /blog data/merge files dropboxCualquier cosa sirve, el intervalo de sondeo activa el disparador en un par de minutos.
  3. Abrir el Historial de ejecución en la parte superior derecha y observa cómo las acciones se ponen verdes. Aplicar a cada una debería mostrar el número de iteraciones correcto, "1 de 4" si había cuatro archivos en la carpeta.
  4. Abrir Dropbox en /blog data/merge blog template/output/. Un archivo llamado merge-4.pdf Está esperando. Ábrelo, todos los PDF de la carpeta de entrada se unen en un solo documento.

¿Qué construiste exactamente? Un sistema de consolidación automatizado que reacciona a cada nueva carga, lee el estado completo de la carpeta en tiempo de ejecución y genera un único PDF con un nombre único que contiene todos los archivos actuales. Sin listas predefinidas, sin tareas programadas por lotes, sin clics manuales. El mismo proceso gestiona 4 o 400 PDF sin necesidad de realizar cambios. Esta misma configuración funciona en Make (iterando sobre la lista de archivos de Dropbox) y Zapier (recorriendo los resultados de la búsqueda de archivos con Zapier).


Variaciones comunes que puedes agregar sin reconstruir

Filtrar solo para archivos PDF.
Insertar un Matriz de filtros acción entre el paso 2 y el paso 3 con terminaCon(toLower(item()?['Nombre']), '.pdf')El bucle ignora entonces los archivos .docx, .png y cualquier otro archivo que haya en la carpeta.
Ordenar por más recientes primero
Agregar un Seleccionar acción que mapea la lista y ordena con ordenar(cuerpo('Listar_archivos_en_la_carpeta'), 'Última_modificación'). Invertir con contrarrestar(...) Si desea que los elementos más recientes aparezcan en la parte superior del PDF combinado.
Convertir a PDF/A después de la fusión
Insertar PDF4me Crear PDF/A entre el paso 5 y el paso 6 con Cumplimiento PDF/A-2bEl contenido que se guarda en Dropbox ahora cumple con la norma de archivo ISO 19005.
Archivos fuente
Después del paso 6, agregue otro Aplicar a cada uno Listar archivos y llamar a Dropbox Mover archivo para empujar cada entrada en /procesadoLa siguiente ejecución solo verá las nuevas subidas.

Solución de problemas

Combinar errores de acción con "contenido no válido"

Agregar a la matriz Valor La expresión no está envuelta en base64ToBinary(...)Sin la conversión, la matriz contiene cadenas base64 en lugar de búferes binarios y PDF4me las rechaza. Vuelva a abrir Agregar a la matriz, cambie al editor de expresiones y pegue. base64ToBinary(body('Get_file_content')?['$content']) literal.

Aplicar a cada ejecución cero veces

El disparador se activó, pero la lista de archivos devolvió una matriz vacía. Compruebe el disparador y la lista de archivos. Carpeta Los valores son idénticos. Las discrepancias en las rutas (una con una barra diagonal al final y la otra sin ella) son una causa común.

El nombre del archivo aparece como fusionar-.pdf

El longitud() La llamada no se resolvió en tiempo de diseño. Asegúrese de haber pegado la expresión en el Nombre del archivo campo a través del efectos Editor de expresiones, no texto plano. El texto plano deja las llaves como caracteres literales y la función nunca se ejecuta.

La salida sobrescribe la ejecución anterior.

Dos ejecuciones consecutivas con el mismo número de archivos producen nombres idénticos (fusionar-4.pdf). O bien cambie la expresión a una marca de tiempo (concat('merge-', utcNow('yyyy-MM-dd-HHmmss'), '.pdf')) o agregar un GUID con guid().


Próximos pasos

El mismo patrón de seis pasos (observar, luego listar, luego iterar a un array, luego fusionar y finalmente guardar con un nombre de ejecución) gestiona cualquier automatización de "reacción a una carpeta". Si mañana añades un archivo nuevo, la ejecución lo detectará. Sin ediciones, sin redistribución.