Mencioné en el artículo previo la posibilidad de extraer el texto de un pdf empleando Power Automate Desktop, y algunos lectores han sentido curiosidad sobre la forma de hacerlo...
Así pues aquí va el proceso.
Partiremos de un fichero Excel con una lista de rutas con los pdf de los cuales nos interesa recuperar su texto.
En mi caso, el fichero será: F:\excelforo\PA_ImportarPDF.xlsx, y en la hoja 1 dispongo del 'listado de pdf's':
F:\excelforo\FacturaEjemploPDF.pdf
F:\excelforo\FacturaEjemploPDF2.pdf
Observa que no es una tabla, ni tiene asignado nombres definidos... son sencillamente dos celdas...
Mantendremos para nuestro ejemplo el fichero abierto
Listos para abrir Power Automate Desktop.
Crearemos un Nuevo Flujo que tendrá los siguientes pasos:
Son 'diez' pasos muy sencillos de seguir que detallaré a continuación:
1- Asociar a Excel en ejecución: es decir, nos dirigimos a nuestro fichero Excel.
2- Establecer la hoja de cálculo activa: indicamos qué hoja del libro anterior activamos.
3- Leer en hoja de trabajo: recuperamos una 'tabla' con el contenido de las celdas.
4- Recuperar columna de datos de tabla en lista: transformamos la tabla anterior en una lista, que nos permitirá fácilmente recorrerla.
5- Bucle For each: que nos permitirá recorrer la lista de rutas del paso anterior.
Dentro del bucle, para elemento de la lista, esto es, para cada fichero pdf:
5.1- Extraer texto del PDF: recupera una única cadena de texto con el contenido completo del pdf..
5.2- Dividir texto: paso fundamental, ya que nos permitirá devolver en pasos siguientes en contenido anterior dividido en distintas celdas!!.
5.3- Establecer la hoja de cálculo activa: activamos la hoja destino de nuestro libro de Excel.
5.4- Obtener la primera columna o fila libre de la hoja de cálculo: nos dice cuál sera la celda destino donde pegar el texto obtenido.
5.5- Escribir en la hoja de cálculo: último paso, terminamos escribiendo a partir de la celda anterior.
Como se puede ver ser pasos bastante lógicos...
Veamos en detalle cada uno de ellos.
El primer paso es dirigirnos a nuestro libro de Excel:Asociar a Excel en ejecución.
Desde las acciones de Excel:
La configuración es muy simple, basta seleccionar desde el buscador el fichero de Excel deseado.
Segundo paso. Establecer la hoja de cálculo activa.
También desde las acciones de Excel..
A partir de la variable generada en el primer paso 'Excelinstance' indicamos la hoja que deseamos activar. Pudiendo optar por referirnos a ella bien por su nombre o bien por su posición entre hojas.
En este caso he optado por dirigirme a la primera hoja del libro.
Tercer paso. Leer en hoja de trabajo.
Igualmente desde las acciones de Excel recorremos un rango de celdas de la hoja activa.
Los parámetros a configurar son sencillos:
- indicamos la variable de libro sobre la que trabajar (y OJO sobre la hoja activada previamente!!). - definimos dónde están los datos a recuperar. Tres opciones (Valor de una celda, Rango de celdas o Celdas seleccionadas).
Yo he optado en este caso por identificar los valores de un rango de celdas, por lo que he definido también las posiciones de fila+columna donde empieza y acaba el rango:
Primera columna=1
Primera fila=1
Última columna=1
Última fila=2
O sea, desde la celda A1 hasta A2
Cuarto paso. Recuperar columna de datos de tabla en lista.
Esta acción la encontramos en el grupo de 'Variables', y nos permite transformar la tabla de datos anterior (las celdas recuperadas) en una lista.
Lista que luego podremos recorrer!!
Importante.. el parámetro que identifica la columna, nos permite optar por el nombre de la columna o por su posición o índice. Si optamos por índice debemos saber que está en base cero. Esto es, la primera columna es la posición cero, la segunda es la posición uno, etc...
Quinto paso. Bucle For each.
En el grupo de acciones de 'Bucles'. Indicamos que lista queremos recorrer. La lista creada en el paso anterior.
Dentro del bucle previo (For each) daremos cinco pasos:
Paso I: Extraer texto del PDF, que recupera una única cadena de texto con el contenido completo del pdf.
Este paso lo encontramos en el grupo de acciones de PDF.
El archivo pdf se le indica a partir de la variable del bucle; además, en este caso, indicamos que queremos recuperar todas las páginas del documento.
Paso II: Dividir texto
En el grupo de acciones de Texto
Este paso dividirá en distintas líneas el contenido obtenido del pdf anterior.. dividiéndolo por cada salto de línea que encuentre (en nuestro ejemplo).
Si bien la configuración nos permite un amplio abanico de posibilidades, incluso personalizando el delimitador!!
Paso III: Establecer la hoja de cálculo activa activamos la hoja destino de nuestro libro de Excel.
Es una acción vista ya en el paso segundo...
Paso IV: Obtener la primera columna o fila libre de la hoja de cálculo Donde identificamos la primera celda libre donde trasladaremos los textos del pdf tratados...
Dentro del grupo de acciones de Excel.
Nos devuelve hasta dos variables, una para la 'Primera fila' y otra para la 'Primera columna' disponible en la hoja activa de nuestra instancia de Excel...
Paso V y último: Escribir en la hoja de cálculo. Escribimos en nuestro Excel el resultado.
Indicamos la variable a trasladar y el destino (en mi ejemplo siempre desde la fila 1 y la primera columna libre que encuentre...
El resultado es óptimo, igual que el del desarrollo con VBA... pero con una ventaja: NO requerimos de licencias o librerías de Acrobat!!.
Así pues aquí va el proceso.
Partiremos de un fichero Excel con una lista de rutas con los pdf de los cuales nos interesa recuperar su texto.
En mi caso, el fichero será: F:\excelforo\PA_ImportarPDF.xlsx, y en la hoja 1 dispongo del 'listado de pdf's':
F:\excelforo\FacturaEjemploPDF.pdf
F:\excelforo\FacturaEjemploPDF2.pdf
Observa que no es una tabla, ni tiene asignado nombres definidos... son sencillamente dos celdas...
Mantendremos para nuestro ejemplo el fichero abierto
Listos para abrir Power Automate Desktop.
Crearemos un Nuevo Flujo que tendrá los siguientes pasos:
Son 'diez' pasos muy sencillos de seguir que detallaré a continuación:
1- Asociar a Excel en ejecución: es decir, nos dirigimos a nuestro fichero Excel.
2- Establecer la hoja de cálculo activa: indicamos qué hoja del libro anterior activamos.
3- Leer en hoja de trabajo: recuperamos una 'tabla' con el contenido de las celdas.
4- Recuperar columna de datos de tabla en lista: transformamos la tabla anterior en una lista, que nos permitirá fácilmente recorrerla.
5- Bucle For each: que nos permitirá recorrer la lista de rutas del paso anterior.
Dentro del bucle, para elemento de la lista, esto es, para cada fichero pdf:
5.1- Extraer texto del PDF: recupera una única cadena de texto con el contenido completo del pdf..
5.2- Dividir texto: paso fundamental, ya que nos permitirá devolver en pasos siguientes en contenido anterior dividido en distintas celdas!!.
5.3- Establecer la hoja de cálculo activa: activamos la hoja destino de nuestro libro de Excel.
5.4- Obtener la primera columna o fila libre de la hoja de cálculo: nos dice cuál sera la celda destino donde pegar el texto obtenido.
5.5- Escribir en la hoja de cálculo: último paso, terminamos escribiendo a partir de la celda anterior.
Como se puede ver ser pasos bastante lógicos...
Veamos en detalle cada uno de ellos.
El primer paso es dirigirnos a nuestro libro de Excel:Asociar a Excel en ejecución.
Desde las acciones de Excel:
La configuración es muy simple, basta seleccionar desde el buscador el fichero de Excel deseado.
Segundo paso. Establecer la hoja de cálculo activa.
También desde las acciones de Excel..
A partir de la variable generada en el primer paso 'Excelinstance' indicamos la hoja que deseamos activar. Pudiendo optar por referirnos a ella bien por su nombre o bien por su posición entre hojas.
En este caso he optado por dirigirme a la primera hoja del libro.
Tercer paso. Leer en hoja de trabajo.
Igualmente desde las acciones de Excel recorremos un rango de celdas de la hoja activa.
Los parámetros a configurar son sencillos:
- indicamos la variable de libro sobre la que trabajar (y OJO sobre la hoja activada previamente!!). - definimos dónde están los datos a recuperar. Tres opciones (Valor de una celda, Rango de celdas o Celdas seleccionadas).
Yo he optado en este caso por identificar los valores de un rango de celdas, por lo que he definido también las posiciones de fila+columna donde empieza y acaba el rango:
Primera columna=1
Primera fila=1
Última columna=1
Última fila=2
O sea, desde la celda A1 hasta A2
Cuarto paso. Recuperar columna de datos de tabla en lista.
Esta acción la encontramos en el grupo de 'Variables', y nos permite transformar la tabla de datos anterior (las celdas recuperadas) en una lista.
Lista que luego podremos recorrer!!
Importante.. el parámetro que identifica la columna, nos permite optar por el nombre de la columna o por su posición o índice. Si optamos por índice debemos saber que está en base cero. Esto es, la primera columna es la posición cero, la segunda es la posición uno, etc...
Quinto paso. Bucle For each.
En el grupo de acciones de 'Bucles'. Indicamos que lista queremos recorrer. La lista creada en el paso anterior.
Dentro del bucle previo (For each) daremos cinco pasos:
Paso I: Extraer texto del PDF, que recupera una única cadena de texto con el contenido completo del pdf.
Este paso lo encontramos en el grupo de acciones de PDF.
El archivo pdf se le indica a partir de la variable del bucle; además, en este caso, indicamos que queremos recuperar todas las páginas del documento.
Paso II: Dividir texto
En el grupo de acciones de Texto
Este paso dividirá en distintas líneas el contenido obtenido del pdf anterior.. dividiéndolo por cada salto de línea que encuentre (en nuestro ejemplo).
Si bien la configuración nos permite un amplio abanico de posibilidades, incluso personalizando el delimitador!!
Paso III: Establecer la hoja de cálculo activa activamos la hoja destino de nuestro libro de Excel.
Es una acción vista ya en el paso segundo...
Paso IV: Obtener la primera columna o fila libre de la hoja de cálculo Donde identificamos la primera celda libre donde trasladaremos los textos del pdf tratados...
Dentro del grupo de acciones de Excel.
Nos devuelve hasta dos variables, una para la 'Primera fila' y otra para la 'Primera columna' disponible en la hoja activa de nuestra instancia de Excel...
Paso V y último: Escribir en la hoja de cálculo. Escribimos en nuestro Excel el resultado.
Indicamos la variable a trasladar y el destino (en mi ejemplo siempre desde la fila 1 y la primera columna libre que encuentre...
El resultado es óptimo, igual que el del desarrollo con VBA... pero con una ventaja: NO requerimos de licencias o librerías de Acrobat!!.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.