Si nos encontramos en la necesidad de generar correos electrónicos con PDF adjuntos, entonces podemos utilizar el motor de Power Automate para cumplir esta función, por lo que hoy vamos a cubrir el cómo podemos generar un PDF para enviarlo vía correo electrónico.
La solución a este problema está en crear un documento HTML que contenga el cuerpo del documento, guardarlo en OneDrive, convertirlo a PDF y finalmente adjuntarlo al correo que vamos a enviar.
Ahora veamos esto paso por paso.
Obteniendo una tabla de datos para el PDF
Vamos a empezar con un paso de «Get Items» en SharePoint, si quieres solo para algunos valores puedes usar los filtros oData para solo traer los que necesitas.
Selecciona ahora la acción «Create HTML table» para componer una tabla HTML a partir de las columnas de tu lista. Si no necesitas adjuntar una tabla a tu PDF omite estos dos pasos.
Creando el flujo para el PDF
Ahora, usaremos la acción «Compose» para escribir el HTML.
Los archivos PDF tienen una estructura peculiar para ser armados en HTML, por lo que te recomiendo hacerlo de la siguiente manera:
- Tu texto HTML debe de ser parecido a la estructura de abajo. Asegurate de cambiar las xxx por el texto que necesites.
<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>title>xxx</title><meta name="author" content="xxx"/></head><body><h1><a>XXX</a></h1><p>XXX</p></body></html>
2. Si vas a utilizar el paso de adjuntar una tabla, usa la función concat para crear una cadena como sigue:
concat('<!DOCTYPE html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>title>xxx</title><meta name="author" content="xxx"/></head>'<body><h1><a name="bookmark0">XXX</a></h1><p>XXX</p><p></p>', body('Create_HTML_table'),'</body></html>')
Si te das cuenta, la tabla HTML debe de quedar dentro del Body.
Lo siguiente será añadir una acción «OneDrive – Create File» para guardar el contenido HTML a un archivo en OneDrive, al cual le podemos poner el nombre que queramos. Lo que importa aquí es que el contenido del archivo debe venir de la variable que creamos antes.
A continuación vamos a añadir una acción «OneDrive – Convert File» para convertir nuesto archivo HTML a PDF. Utilizaremos el Id de archivo del paso anterior y seleccionaremos el tipo de objetivo como «PDF».
Ahora vamos a agregar una acción «Outlook – Send an email». Para adjuntar el archivo PDF al correo expandiremos la sección de Opciones Avanzadas, especificaremos un nombre de archivo y estableceremos el campo de Contenido al contenido de la acción «Convert File».
Y aquí tendremos el archivo PDF que se generó en el ejemplo de arriba:
Dependiendo que tanto tengas conocimiento de HTML, puedes crear cosas mucho más desarrolladas en presentación. Con el código que te comparto arriba, es más que suficiente para crear el archivo PDF en Power Automate sin errores.
Cualquier duda, nos leemos abajo.
Hola, estuve viendo el video y tengo un problema en la parte de convert file lo trae en blanco a pesar que si se crea el html en mi onedrive
Hola, me pasa lo mismo. El archivo html está correcto pero el convert me crea un PDF en blanco.
Hola,
me gustaría saber si yo tengo un listado con varias filas, quisiera crear dos tablas, una con un numero de filas concretas y otra justo debajo con otras tantas filas. ¿es posible?
gracias.
Hola.
Si, solo crea dos variables de tabla html y metelas con sus valores al pdf.
Hola, excelente video y explicación. Te puedo consultar, lo que necesito es generar el pdf pero de cuando se grabe un registro no de todos los que están en la lista. Me podrías ayudar?
Hola Daniela!
Ok, debes usar el trigger «when an item is created» y despues meterlo todo en una estructura HTML que te sirva.
El mismo conector te dará los datos individuales del item, por lo que solo deberas crear un «compose» con el HTML que necesitas, crear el archivo HTML, convertirlo a PDF y crear archivo PDF.
Es más facil aún que lo que esta en este post jeje.
Estamos en contacto!
Hola, estuve viendo el video, y realice tal cual se indica el proceso, lo copie tal cual, solo que me envía un error: «Corrija esto para incluir una referencia válida a «Create_HTML_table» para los parámetros de entrada de la acción «Redactar». ¿Qué se hace en este caso? sustituí las XXX como se indican para que arrojara la información esperada.
Gracias por el apoyo.
Hola Mary!
Si tu programa está en español, cambia el
Create_HTML_table
Por
Crear_Tabla_HTML
El nombre que pones ahí, debe de ser igual que el nombre que usas en tu paso de Power Automate.
Intenta cambiarlo y me dices.
Saludos!