1 votos

Fusión de PDFs

Tengo 6 archivos PDF que son el resultado de dividir varias presentaciones en PDF (que tenían 6 diapositivas en cada página). Así que, esencialmente, ahora tengo las páginas superiores izquierdas de todas las presentaciones en un archivo, las superiores derechas en otro, las centrales izquierdas en un archivo y así sucesivamente...

Así es básicamente la presentación inicial:

page 1
 ___________________
|  ______   ______  |
| |slide1| |slide2| |
| |______| |______| |
|  ______   ______  |
| |slide3| |slide4| |
| |______| |______| |
|  ______   ______  |
| |slide5| |slide6| |
| |______| |______| |
|___________________|

page 2
 ___________________
|  ______   ______  |
| |slide7| |slide8| |
| |______| |______| |
.....................

P: ¿Cómo puedo fusionarlas para mantener el orden de las presentaciones iniciales?

Tengo que hacer lo siguiente:

for index in range(number_of_pages_in_each_pdf):
   final_pdf.append(pdf1[index])
   final_pdf.append(pdf2[index])
   final_pdf.append(pdf3[index])
   final_pdf.append(pdf4[index])
   final_pdf.append(pdf5[index])
   final_pdf.append(pdf6[index])

Hay alrededor de cien páginas en cada uno de esos seis PDF, así que la reagrupación a mano está descartada .

0voto

Dart Dega Puntos 6

Al final, estoy respondiendo a mi propia pregunta, porque finalmente encontré una manera y quiero dejar la solución completa aquí, en caso de que alguien luche con un problema similar en el futuro.

La solución pasa por un increíble programa llamado Poppler disponible a través de Homebrew , por brew install poppler . Poppler viene con una variedad de herramientas de gestión de pdf, como pdfseparate y pdfunite que aparece en el script.

Sin más dilación, aquí está el script que he escrito:

#!/bin/bash

mkdir ~/Desktop/merging

# number of pdf files containing pages nr 1/2/3/...
n=6

for i in $(seq 1 $n); do
    # ${i}.pdf being a file containing pages nr i
    pdfseparate ~/Desktop/${i}.pdf ~/Desktop/merging/${i}_%d.pdf
done

number_of_pages=$(cd ~/Desktop/merging/; ls | wc -l)
number_of_pages_each=$((number_of_pages/n))

command="pdfunite"

for i in $(seq 1 ${number_of_pages_each}); do
    for j in $(seq 1 $n); do
        command="$command ~/Desktop/merging/${j}_${i}.pdf"
    done
done

command="$command ~/Desktop/output.pdf"

eval $command

# cleanup
rm -rf ~/Desktop/merging

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