0 votos

Fusionar un conjunto de archivos enumerados.pdf en un solo .pdf

Un conjunto de pdf enumerados están en un directorio:

1001_falcon.pdf
0100_bear.pdf
0201_cat.pdf
0201_cat.txt

El objetivo es fusionar sólo los archivos pdf en un output.pdf con un script.

pdftk ya está instalado y puede fusionar archivos pdf, sin embargo, el enlace (antiguo) indica que tiene errores.

pdftk merge syntax

Para fusionar dos archivos pdf, file1.pdf y file2.pdf :

pdftk file1.pdf file2.pdf cat output mergedfile.pdf

¿Cómo se puede canalizar el conjunto de archivos pdf en el directorio para pdftk para crear mergedfile.pdf

Si hay un método más sencillo para lograr el objetivo, espero su respuesta

0voto

rallyemax Puntos 41

Para la concatenación simple de archivos PDF, la utilidad pdfunite es lo más sencillo que puede haber. Es una de las utilidades que vienen con el Biblioteca de renderización de PDFs Poppler y se puede instalar con brew install poppler . También se incluye en el poppler-utils en Debian y Ubuntu y el paquete poppler en ArchLinux y en Fedora, si utiliza Linux.

El uso es

pdfunite file1.pdf file2.pdf file3.pdf mergedfile.pdf

Para procesar todos los archivos con la extensión "pdf" en el directorio actual en el orden del valor numérico de la cadena si no hay espacios en blanco en ninguno de los archivos :

pdfunite $(\ls -v *.pdf) output.pdf

Y si hay posiblemente espacios en blanco en los nombres de los archivos, se complica un poco más, pero esto debería funcionar:

(\ls -v *.pdf; echo output.pdf) | tr \\n \\0 | xargs -0 pdfunite

Explicación:

  • \ls invoca el ls de su $PATH ignorando los alias. Esto puede ser importante en caso de que tenga un alias ls que muestra información extra (como caracteres especiales para denotar ciertos permisos). También puede utilizar una ruta absoluta al archivo ls ejecutable, como /usr/bin/ls .
  • ls -v ordena los archivos según los números (de versión) dentro del texto
  • tr \\n \\0 sustituye las nuevas líneas por NULLs después de cada archivo
  • xargs -0 indica a xargs que utilice el carácter NULL para separar los argumentos

Como puedes ver, el manejo adecuado de cosas como los espacios en blanco (y otros caracteres especiales) al canalizar comandos en el shell puede ser un poco complicado. Si quieres leer más, te recomiendo el libro de David Wheeler artículo completo .

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