Respuestas:
Eche un vistazo a "Combinar archivos PDF en la línea de comandos en OSX" en Unir archivos PDF en OS X desde la línea de comandos .
Resulta que desde Tiger en adelante, OSX se envía con un script Python que hace exactamente lo que necesita. El script ya es ejecutable y Python está preinstalado en OS X, por lo que todo lo que necesita hacer para ejecutarlo es abrir el Terminal y escribir
"/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py" -o PATH/TO/YOUR/MERGED/FILE.pdf /PATH/TO/ORIGINAL/1.pdf /PATH/TO/ANOTHER/2.pdf /PATH/TO/A/WHOLE/DIR/*.pdf
También en la página del enlace se sugiere hacer un enlace simbólico para el join.py
archivo para facilitar la escritura sin embargo, omiten el -s
en ln -s ... ...
, y sin ella, se crea un vínculo físico. Probablemente no importaría, aunque lo mencionaría.
Simplemente instale Ghostscript usando Brew con el comando:
brew install gs
Luego ejecute el comando con todos los archivos enumerados:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf
gs
por lo que para referencia futura esta solución sería igual de conveniente.
El script de Python de Apple en la acción de Automator es muy lento, ya que utiliza las API CGPDFDocument de CoreGraphics, en lugar del nuevo marco PDFKit. También importa toda la biblioteca CoreGraphics, en lugar de solo las API requeridas.
Aquí se puede encontrar una secuencia de comandos de Python más rápida y alternativa :
Este script también agrega una tabla de contenido al PDF, que enumera cada archivo de componente (y combina ToC existentes), que Apple no lo hace.
Se puede usar en la línea de comando (con nombres de archivo PDF como argumentos), o en una acción de script de shell de Automator, para realizar una Acción / Servicio rápido para el Finder.
time
comando junto con su joinpdfs.py
guión , la incorporada en el join.py
guión y dos archivos de ~ 200 MB cada uno, el joinpdfs.py
guión fue de 9 segundos más rápido que el incorporado en la join.py
secuencia de comandos , por supuesto, con la ventaja añadida de tener el TOC intacta . ¡Agradable! +1
FWIW, he escrito un pequeño programa rápido que te permite hacer esto sin tener que depender de dependencias externas como el sistema python y demás. En github aquí: pdfmerge y bastante simple de usar, puede pasarle una lista de archivos PDF para fusionar pdfmerge in1.pdf in2.pdf ... out.pdf
, pasarle una lista de archivos para fusionar en un archivo de texto pdfmerge infileslist.txt out.pdf
o simplemente hacer el directorio actual en orden ABC pdfmerge out.pdf
. Lo escribí como un proyecto de aprendizaje, de forma gratuita y abierta, y puedes obtener el último binario de la pestaña de lanzamientos en github.
join.py
script de la acción Combinar páginas PDF en Automator, no es necesario descargar ni instalar nada más, pero para usar el suyo tendría que descárguelo e instálelo. Tampoco vi un binario en el enlace.
sobre la base de @Bartosz Petryński 's respuesta agradable , podemos hacer propia una mínima cpdf
utilidad en la parte superior de GhostScript:
brew install gs
cpdf () {
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$1" "${@:2}"
}
luego úsalo como:
cpdf merged.pdf file1.pdf file2.pdf file3.pdf
Encontré que la herramienta de línea de comandos Coherente PDF gratuita es la mejor opción. Es muy rápido, sin pérdidas y no daña la orientación o los hipervínculos como lo hicieron algunas otras soluciones. El formato es:
cpdf file1.pdf file2.pdf -o output.pdf