35 votos

Mac OS X: Cómo fusionar archivos pdf en un directorio según sus nombres de archivo

Quiero fusionar varios cientos de archivos pdf en un directorio automáticamente de acuerdo con los nombres de sus archivos.

Por ejemplo.

Los archivos 1000.1.pdf 1000.2.pdf 1000.3.pdf 1000.x.pdf debería fusionarse en 1000.pdf

y

2000.abc.pdf 2000.def.pdf 2000.ghi.pdf 2000.jkl.pdf 2000.5.pdf en 2000.pdf .

No quiero usar soluciones basadas en Preview/Automator (si está disponible) porque comparado con software de terceros como Adobe Acrobat o PDFpen, la fusión de archivos pdf a menudo (dependiendo de los documentos de origen) resulta en un aumento significativo del tamaño del archivo (ver por ejemplo. ¿Qué hace que el tamaño del archivo PDF aumente al guardarlo en la vista previa? )

¿Tiene alguna recomendación? ¡Gracias!

56voto

Dwivedi Ji Puntos 116

Hay una pitón script escondida en Automator.app que se une a los archivos .PDF

/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py --help
Usage: join [--output <file>] [--shuffle] [--verbose]

Ejemplo de uso:

/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py --output all.pdf *.pdf

27voto

Joe Puntos 224

Pruebe pdftk . Es un software de línea de comandos que puede unir archivos PDF (y también hacer muchas otras cosas, pero eso no es relevante aquí). Puedes descargarlo de la página web oficial de la PDTK .

Muestra de sintaxis:

pdftk old1.pdf old2.pdf old3.pdf cat output new.pdf

creará el archivo new.pdf que contiene la concatenación de los archivos old1.pdf , old2.pdf , old3.pdf .

Para resolver su problema, con sus nombres de archivo de ejemplo:

pdftk 1000.*.pdf cat 1000.pdf
pdftk 2000.*.pdf cat 2000.pdf

y así sucesivamente. Puedes usar scripts de shell para que esto sea completamente automático si lo deseas (pero tendrás que dedicar un poco de tiempo para aprender a escribir scripts de shell scripts).


Asumiendo que todos los archivos se llamen 1000.x, 2000.x etc. un shell script podría verse de alguna manera así

#!/bin/bash

for n in {1..9}; do
    if [[ -r ${n}000.1.pdf ]]; then
        rm -f ${n}000.pdf
        pdftk ${n}000.*.pdf cat ${n}000.pdf && mv ${n}000.*.pdf ~/.Trash/
    fi
done

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