Mac OS X: cómo combinar archivos pdf en un directorio de acuerdo con sus nombres de archivo

30

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

Por ejemplo,

Los archivos 1000.1.pdf 1000.2.pdf 1000.3.pdf 1000.x.pdf se debe combinar 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 un software de terceros como Adobe Acrobat o PDFpen que combina archivos PDF a menudo (según los documentos de origen) produce un aumento significativo en el tamaño del archivo. (ver, por ejemplo, Qué ¿Aumenta el tamaño del archivo PDF al guardar en Vista previa? )

¿Tienes alguna recomendación? ¡Gracias!

    
pregunta lejonet 17.08.2013 - 20:20

4 respuestas

24

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í). Puede descargarlo desde la página web oficial de pdftk .

Sintaxis de ejemplo:

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. Puede usar shell scripting para hacer esto completamente automático si lo desea (pero tendrá que dedicar un poco de tiempo a su propio aprendizaje sobre cómo escribir scripts de shell).

Suponiendo que todos los archivos se denominan 1000.x, 2000.x etc., un script de shell podría tener el siguiente aspecto

#!/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
    
respondido por el D.W. 18.08.2013 - 02:26
46

Hay un script de Python oculto 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
    
respondido por el akuhn 17.08.2013 - 22:31
6

Puedes usar pdfunite distribuido con poppler . Puedes instalar poppler con Homebrew:

brew install poppler

Y ahora utilízalo:

pdfunite input1.pdf input2.pdf input3.pdf output.pdf

poppler también viene con estos otros comandos: pdfdetach , pdffonts , pdfimages , pdfinfo , pdfseparate , pdftocairo , pdftohtml , pdftoppm , pdftops , pdftotext , además de pdfunite .

    
respondido por el Flimm 15.09.2016 - 15:33
0

pdftk ya no funciona en El Capitán! (OS X 10.10)

Una alternativa es pagemaster de PDFTron. La sintaxis sería:

pagemaster -m *.pdf -o output.pdf

No tiene el problema de aumento de tamaño de archivo de la solución Automator anterior, ya que utiliza una biblioteca de PDF personalizada.

Nota: esta no es una herramienta gratuita. La versión de demostración agrega una marca de agua delgada en cada página.

    
respondido por el antoine 13.09.2016 - 23:55

Lea otras preguntas en las etiquetas