Почему мой код неправильно разделяет каждую страницу в отсканированном PDF-файле?

Обновление: Спасибо stardt, чей сценарий работает! PDF-файл - это страница другого. Я пробовал сценарий на другом, и он также правильно выводил каждую страницу pdf, но порядок номеров страниц иногда правильный, а иногда неправильный. Например, на страницах 25-28 файла pdf напечатанные номера страниц - 14, 15, 17, 16. Мне было интересно, почему? Весь pdf-файл можно загрузить с http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf

Оригинал: У меня есть отсканированный pdf-файл, где две бумажные страницы расположены рядом. страницу в формате pdf. Я хотел бы разделить страницу pdf на две, причем исходная левая половина стала более ранней из двух новых страниц pdf. PDF-файл выглядит как enter image description here.

Вот мой сценарий Python с именем un2up , вдохновленный Жилем :

#!/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)

Я пробовал сценарий на pdf в терминале с командой un2up out.pdf , но вывод out.pdf разбивается неправильно.

Я также проверил значения переменных w и h , вывод p.mediaBox.upperRight , и они равны 514 ] и 1224 , которые не выглядят правильно, исходя из их фактического соотношения.

Файл можно загрузить с http://download851.mediafire.com/bdr4sv7v5nzg/raci13ct5w4c86j/page.pdf .

9
задан Community 13 April 2017 в 12:36
поделиться