Automator: extrae el texto del PDF y guárdalo en el directorio actual

Creé un servicio de Automator para extraer texto PDF y guardarlo en el directorio actual, y funciona razonablemente bien.

Toma uno o varios archivos PDF, extrae el texto y lo guarda como .rtfs separados ubicados en el mismo directorio donde se encontraron los PDF originales.
Bien, excelente, excepto por un pequeño problema: lo que también se guarda invariablemente junto con los otros .rtfs es uno vacío (cero bytes), con el nombre del directorio actual.

Mirando el flujo de trabajo a continuación, parece que ambas variables ("PDF" y "Bane") se pasan a la acción "Hent ut PDF-tekst". ¿Es razonable mi suposición y, en cualquier caso, cómo lo soluciono?

ingrese la descripción de la imagen aquí

El guión en texto plano:

on run {input, parameters}
 tell application "System Events"
 set thePath to POSIX path of (container of (item 1 of input))
 end tell
 return thePath
end run

Además, Automator crea automáticamente una representación PNG de su flujo de trabajo cuando lo guarda, y se puede obtener fácilmente revelando el contenido del paquete.
Genio yo me di cuenta de esto solo después de un poco de tonterías con la captura de pantalla y GIMP.

¡Supongo que no esperas que nadie que no pueda leer o entender danés te ayude! Además, Snow Leopard es bastante antiguo, lo que limita aún más aquellos que pueden probar en el mismo entorno que está usando como "Hent ut PDF-tekst" ("Descargar texto PDF" (si Google Translate es correcto) no existe en Automator en el versión posterior de OS X que estoy ejecutando.
Para cualquiera que esté familiarizado con Automator, no debería ser demasiado difícil deducir el significado de los distintos campos y ventanas. (y es noruego, no es que haya mucha diferencia). ¿Seguramente no soy el único SL-fogey que queda aquí?
Lo siento, apareció como danés en Google Translate y el punto que estaba tratando de hacer es cuando pido ayuda en inglés mientras se muestran imágenes escritas en un idioma que no sea inglés, también debe traducir lo que hay en la imagen para ayudarnos a ayudarlo. ! Traduje usando Google Translate, sin embargo, como "Hent ut PDF-tekst" no existe en Automator en la versión de OS X que estoy usando, no puedo probar lo que tienes para ver dónde podría estar yendo mal. Aunque dicho esto, ¿ha revisado la salida en "Resultater" (Resultados) en busca de pistas?
Los resultados muestran un error: "índice (2) más allá de los límites (2)". Si esa acción no existe en su versión de Automator, ¿cómo haría para automatizar esta tarea?

Respuestas (1)

Aquí está el problema que encontré con la traducción de "Hent ut PDF-tekst" en Google Translate mientras traducía del noruego al inglés, se traducía como "Obtener el texto del PDF", así que cuando escribí "Obtener" en el cuadro de búsqueda de acciones, no mostró ninguna acción de PDF con las acciones "Obtener" que sí se mostraron. Tras un examen más detallado, encontré Extraer texto PDF y lo usé.

Pude replicar el problema de la creación de un archivo RTF de tamaño cero junto con el del archivo PDF real; sin embargo, no pude depurar el motivo y probé muchas cosas diferentes. A través del flujo de trabajo, mostró a Bane como una carpeta como la ruta al archivo PDF seleccionado, pero luego lo convirtió a RTF de tamaño cero junto con el archivo RTF adecuado y, para mí, parece un error en Automator.

Dicho esto, presento una solución alternativa que puede elegir usar si nadie más tiene una respuesta que resuelva el problema sin recurrir a esta solución alternativa.

Agregue una acción Ejecutar script de Shell al final de la lista de Acciones, configurando Shell: /bin/bash y Pass input: como argumento con el siguiente código :

for f in "$@"; do
    if [ ! -s "$f" ]; then
        rm "$f"
    fi
done

Lo que se traduce en: si este archivo no tiene un tamaño mayor que cero, entonces elimínelo.

Por cierto, si desea probar el código primero, puede reemplazarlo temporalmente rm "$f"con algo como say deleting "$f"para que pueda escuchar qué archivo se va a eliminar. Cuando esté satisfecho, eliminará el archivo de tamaño cero y luego lo volverá a colocar en rm "$f".

Aquí hay una imagen de mi Servicio Automator.

Exportar servicio PDF Text Automator

Si es un error que debe haber estado persistiendo durante toda una década, casi quiero aplaudirlo. Gracias por la corrección de bash, ni siquiera pensé en resolverlo de esa manera.
@AkselA, la razón por la que digo que es un error es que parece que la acción Extraer texto de PDF no está validando correctamente lo que se le está pasando, que supone que todo lo que se pasa es un archivo PDF del que se extrae el texto. Como programador, me habría asegurado de que si uno de los objetos que se pasaban fuera una Variable asignada para Guardar salida en: no procesarlo como un archivo PDF, lo que desafortunadamente no está haciendo. En cuanto a estar presente durante mucho tiempo, eso no es nada... mira cuánto tiempo lleva Shellshock en Bash, desde septiembre de 1989 y no comenzó a parchearse hasta septiembre de 2014... ¡25 años!