Actualización: Gracias a stardt cuyo script funciona! El pdf es una página de otro. Probé el script en el otro y también escupió correctamente cada página en pdf, pero el orden de los números de página a veces es correcto y algunas veces incorrecto. Por ejemplo, en la página 25-28 del archivo pdf, los números de página impresos son 14, 15, 17, son 16. Me preguntaba por qué? Todo el pdf se puede descargar desde http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf¿Por qué mi código no divide correctamente cada página en un PDF escaneado?
original: Tengo un pdf escaneado, donde dos páginas de papel se sientan de lado a lado en una página PDF. Me gustaría dividir la página pdf en dos, con la mitad izquierda original convirtiéndose en la primera de las dos nuevas páginas PDF. El pdf se ve como .
Aquí está mi script en Python llamado un2up
inspirado por Gilles:
#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
q = copy.copy(p)
(w, h) = p.mediaBox.upperRight
p.mediaBox.upperLeft = (0, h/2)
p.mediaBox.upperRight = (w, h/2)
p.mediaBox.lowerRight = (w, 0)
p.mediaBox.lowerLeft = (0, 0)
q.mediaBox.upperLeft = (0, h)
q.mediaBox.upperRight = (w, h)
q.mediaBox.lowerRight = (w, h/2)
q.mediaBox.lowerLeft = (0, h/2)
output.addPage(q)
output.addPage(p)
output.write(sys.stdout)
Probé la secuencia de comandos en un pdf en el terminal de comandos con ser un2up <page.pdf> out.pdf
, pero la salida out.pdf
no se divide correctamente.
También comprobé los valores de las variables w
y h
, la salida de p.mediaBox.upperRight
, y son 514
y 1224
que no pongan cara derecha basa en su relación real.
El archivo se puede descargar desde http://download851.mediafire.com/bdr4sv7v5nzg/raci13ct5w4c86j/page.pdf.
Gracias! ¡Funciona! El pdf es una página de otro. Probé el script en el otro y también escupió correctamente cada página en pdf, pero el orden de los números de página a veces es correcto y algunas veces incorrecto. Por ejemplo, en la página 25-28 del archivo pdf, los números de página impresos son 14, 15, 17, son 16. Me preguntaba por qué? El pdf completo se puede descargar de http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf – Tim
@Tim He actualizado el código para que invierta el orden de la división para cada otra página. Esto divide su archivo correctamente. – stardt
Gracias! (1) ¿Sabes por qué tenemos que cambiar la página 'p' y' q' cada dos páginas? ¿Es esto común a otros archivos pdf, o solo específico a este? (2) También me preguntaba cómo entender el sistema de coordenadas en una página en PDF, es decir, ¿es p.mediaBox.lowerLeft el punto inferior derecho o el extremo derecho que vemos al ver el archivo pdf?¿Es la primera coordenada a lo largo de la dirección horizontal o vertical que vemos? – Tim