Обновление: Спасибо stardt, чей скрипт работает!PDF это страница другого.Я попробовал скрипт на другом, и он также правильно выплевывает каждую страницу PDF, но порядок номеров страниц иногда правильный, а иногда и неправильный.Например, на стр. 25-28 файла pdf напечатаны номера страниц 14, 15, 17, 16. Мне было интересно, почему?Весь PDF-файл можно загрузить с http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf
Оригинал: У меня есть отсканированный PDF-файл, где две страницы бумаги располагаются рядом на одной странице PDF.Я хотел бы разделить страницу pdf на две части, при этом исходная левая половина стала более ранней из двух новых страниц pdf.PDF выглядит как .
Вот мой Python-скрипт с именем un2up
, вдохновленный 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)
Я пробовал скрипт в pdf в терминале с командой un2up < page.pdf > out.pdf
,но вывод out.pdf
неправильно разделен.
Я также проверил значения переменных w
и h
, выходные данные p.mediaBox.upperRight
, и они равны 514
и 1224
, которые выглядят неправильно, исходя из их фактического соотношения.
Файл можно скачать с http://download851.mediafire.com/bdr4sv7v5nzg/raci13ct5w4c86j/page.pdf.