He hecho esto usando el Publicación comunitaria de las herramientas de línea de comandos de Coherent PDF .
Puede descargar las herramientas preconstruidas o el código fuente para compilar este último por su cuenta, sin embargo este último requiere que se instale OCaml al compilar. Así que las herramientas preconstruidas son la forma más fácil de hacerlo. El archivo de distribución descargado, por ejemplo cpdf-binaries-master.zip contiene binarios para Linux, OS X/MacOS y Windows y tiene un tamaño de ~5 MB.
Una vez descargado y extraído (haciendo doble clic en el archivo .zip) se copiaría el, por ejemplo ~/Downloads/cpdf-binaries-master/OSX-Intel/cpdf a una ubicación definida en el archivo PATH
variable de entorno Por ejemplo /usr/local/bin/
para hacerlo globalmente disponible en la línea de comandos en Terminal. Si no está en el PATH
entonces tendrá que utilizar el nombre de ruta completamente calificado a la cpdf
ejecutable o ./cpdf
si está en el directorio de trabajo actual ( pwd
). En el Terminal, escriba echo $PATH
por lo que mostrar la PATH
.
El sintaxis para eliminar la primera página cuando el archivo PDF tiene 2 o más páginas es:
cpdf in.pdf 2-end -o out.pdf
Porque cpdf
lee el archivo original ( en.pdf ) y escribe en un nuevo archivo ( fuera.pdf ) el fuera.pdf debe ser diferente si se guarda en la misma ubicación que el en.pdf o guardarlo en una ubicación diferente con el mismo en.pdf nombre de archivo como el fuera.pdf nombre de archivo, o lo que sea fuera.pdf nombre de archivo que desee.
A continuación, mostraré dos ejemplos de automatización utilizando cpdf
para eliminar la primera página de un archivo PDF, suponiendo que tenga dos o más páginas. Uno usando un Automatizador flujo de trabajo como Servicio disponible en Buscador en el Menú contextual de servicios y el otro como bash
script para usar en la Terminal.
Como un flujo de trabajo de servicio de Automator disponible en Finder en el menú contextual de servicios:
En Automator cree un nuevo flujo de trabajo del servicio utilizando la configuración como se muestra en la imagen de abajo y copiar y pegar el código debajo de la imagen en el Ejecutar Shell script acción y guardar como por ejemplo Eliminar la primera página del PDF
Para utilizar Eliminar la primera página del PDF , en Buscador seleccione los archivos PDF de los que desea eliminar la primera página y, a continuación, seleccione Eliminar la primera página del PDF de la Menú contextual a través de Haga clic con el botón derecho del ratón en o control-clic o de Buscador > Servicios > Eliminar la primera página del PDF
for f in "$@"; do
# Get Page Count.
p="$(/usr/local/bin/cpdf -info "$f" | awk '/Pages:/{print $2}')"
# Get file extension.
ext="${f##*.}"
# Get filename without extension.
fn="${f%.*}"
# Rename original file to "filename (original).pdf".
# Use '-n' to not overwrite an existing file.
mv -n "$f" "${fn} (original).${ext}"
case "$p" in
1)
# PDF file has 1 page. Make a copy to the
# original name for consistency of output.
# Use '-n' to not overwrite an existing file.
cp -n "${fn} (original).${ext}" "$f"
;;
*)
# PDF file has 2 or more pages.
# Remove the first page.
/usr/local/bin/cpdf "${fn} (original).${ext}" 2-end -o "$f"
;;
esac
# If you don't want to keep the original
# file, remove '#' from the next line.
# rm "${fn} (original).${ext}"
done
Tenga en cuenta que el PATH
pasó a Ejecutar Shell script acción en Automatizador es, /usr/bin:/bin:/usr/sbin:/sbin
. Así que el código arriba está usando el nombre de ruta completamente calificado a la cpdf
ejecutable , /usr/local/bin/cpdf
ya que ahí es donde lo coloqué para que estuviera disponible en Terminal mediante el uso de su nombre cpdf
Sólo.
También tenga en cuenta que si no quiere conservar los archivos originales, entonces descomente (elimine el #
de enfrente) el # rm "${fn} (original).${ext}"
comando justo por encima de la última línea de código done
.
Como bash
script para usar en el Terminal:
Crear el bash
script de la siguiente manera:
En la terminal:
touch rfpfpdf
open rfpfpdf
Copiar el bloque de código , comenzando por #!/bin/bash
, abajo en el abierto rfpfpdf
documento y luego guardarlo.
De vuelta a la terminal:
Haga que el script ejecutable:
chmod u+x rfpfpdf
Ahora mueve el rfpfpdf
script a, por ejemplo: /usr/local/bin/
sudo mv rfpfpdf /usr/local/bin/
A continuación, puede cambiar de directorio cd ...
a un directorio que contenga los archivos PDF de los que desea eliminar la primera página y luego simplemente escriba rfpfpdf
y pulse enter .
Los archivos originales se trasladarán a " archivo (original).pdf " y el archivo PDF recién creado sin la primera página, si son 2 o más páginas, tendrá el original filename.pdf
nombre.
#!/bin/bash
for f in *.pdf *.PDF; do
if [[ -f $f ]]; then
# Get Page Count.
p="$(cpdf -info "$f" | awk '/Pages:/{print $2}')"
# Get file extension.
ext="${f##*.}"
# Get filename without extension.
fn="${f%.*}"
# Rename original file to "filename (original).pdf".
# Use '-n' to not overwrite an existing file.
mv -n "$f" "${fn} (original).${ext}"
case "$p" in
1)
# PDF file has 1 page. Make a copy to the
# original name for consistency of output.
# Use '-n' to not overwrite an existing file.
cp -n "${fn} (original).${ext}" "$f"
;;
*)
# PDF file has 2 or more pages.
# Remove the first page.
cpdf "${fn} (original).${ext}" 2-end -o "$f"
;;
esac
# If you don't want to keep the original
# file, remove '#' from the next line.
# rm "${fn} (original).${ext}"
fi
done
Tenga en cuenta que el código anterior supone que el cpdf
ejecutable está en un directorio que está dentro del PATH
variable de entorno Por ejemplo: /usr/local/bin/
También tenga en cuenta que si no quiere conservar los archivos originales, entonces descomente (elimine el #
de enfrente) el # rm "${fn} (original).${ext}"
comando justo por encima de la última línea de código done
.