0 votos

Fusionar pdfs con automator

Estoy escaneando mi correo y termino con dos versiones: anverso y reverso.

Los archivos se denominan: scanf 01.pdf y scanb 01.pdf

Estoy escaneando unas 40 páginas al día, por lo que acaba habiendo bastantes listas.

Ahora, con automator, he hecho lo siguiente:

  1. Obtener los elementos seleccionados del buscador # "scanf 01.pdf" & "scanb 01.pdf"
  2. Combinar páginas PDF
  3. Mover los elementos del Finder # al Escritorio
  4. Nombre del artículo único # para que no sea un nombre al azar, pero "Scan.pdf"
  5. Añadir fecha u hora # "Scan 2013-01-07.pdf"
  6. Hacer secuencial # "Scan 2013-01-07 01.pdf" (es al menos la idea)
  7. Etiqueta de elementos del buscador # Añade una etiqueta roja, por lo que aún no la he visto

El paso 6 no funciona, ya que la secuencia comienza de nuevo cada vez que selecciono dos nuevos archivos. Entonces dice 'el nombre ya existe', después de eso se detiene.

Preguntas:

  1. ¿Cómo puedo hacer que el paso 6 funcione?
  2. ¿Existe algo que fusione automáticamente los archivos, de modo que el Scanf 01.pdf se fusione con el Scanb 01.pdf y que el Scanf 02.pdf se fusione con el Scanb 02.pdf, y así sucesivamente? Ya que mi configuración actual de Automator me obliga a seleccionar los dos archivos.

1voto

Fuzzy Purple Monkey Puntos 702

No he probado esto, pero podrías usar un shell script en su lugar.

#!/bin/bash

join="/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py"
date=$(date '+%Y-%m-%d')
last=$(ls ~/Desktop/$date*.pdf 2> /dev/null | tail -n1 | sed -E 's/.* 0*(.*)\.pdf$/\1/g' || 0)

cd ~/Documents/Scanned/
for f in scanf*.pdf; do
    ((last++))
    output="$HOME/Desktop/$date $(printf %03d $last).pdf"
    python "$join" -o "$output" "$f" "${f/scanf/scanb}"
    osascript -e 'on run {f}
tell app "Finder" to set label index of (posix file f as alias) to 2
end' "$output"
done

1voto

Ged Byrne Puntos 481

La razón por la que te encuentras con errores inesperados de "el archivo ya existe" es que el Hacer secuencial sólo funciona para una sola iteración del flujo de trabajo. Si ejecuta el flujo de trabajo dos veces, fallará la segunda vez, porque el contador se reinicia e intenta comenzar la numeración en 1. Así que si ya tiene un elemento llamado Scan 2013-01-07 01.pdf , intenta hacer otro llamado así y falla.

La solución es utilizar un script que haga el cambio de nombre por ti, que puede detectar si ya hay archivos duplicados y empezar de nuevo.

En lugar del Hacer secuencial acción, añada un Ejecutar Shell script acción, con el shell configurado en /usr/bin/Python la entrada a como argumentos y pegar este script:

#!/usr/bin/python

import sys
import os

decimalPadding = 2 # pad to x decimal places
returnFiles = ''

for filePath in sys.argv[1:]:
    pathNoExt, extension = os.path.splitext(filePath)
    counter = 1
    newPath = pathNoExt + ' %0*d' % (decimalPadding, counter) + extension

    #     Increment counter until we find a file that does not exist
    while os.path.exists(newPath):
        counter += 1
        newPath = pathNoExt + ' %0*d' % (decimalPadding, counter) + extension
    os.rename(filePath, newPath)
    returnFiles += newPath + '\n'

print returnFiles #pass the renamed files for other automator actions

Eso debería darte los resultados que deseas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X