更新:感謝stardt的腳本工作! pdf是另一個頁面。我在另一個腳本上嘗試了腳本,它也正確地吐出每個pdf頁面,但頁碼的順序有時是正確的,有時是錯誤的。例如,在pdf文件的第25-28頁中,打印的頁碼是14,15,17,16。我想知道爲什麼?整個pdf可以從http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf爲什麼我的代碼沒有正確分割掃描的pdf中的每一頁?
原始碼:我有一個掃描的pdf,其中兩個紙張並排放在一個PDF頁面。我想將pdf頁面分成兩部分,最初的左半部分成爲兩個新的pdf頁面中較早的部分。 pdf看起來像。
這是我的一個名爲un2up
通過Gilles啓發Python腳本:
#!/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下載。
謝謝!有用! pdf是另一個頁面。我在另一個腳本上嘗試了腳本,它也正確地吐出每個pdf頁面,但頁碼的順序有時是正確的,有時是錯誤的。例如,在pdf文件的第25-28頁中,打印的頁碼是14,15,17,16。我想知道爲什麼?整個pdf可以從http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf – Tim
下載@Tim我更新了代碼,以便它顛倒每隔一頁的拆分順序。這會正確地分割您的文件。 – stardt
謝謝! (1)你知道爲什麼我們每隔兩頁需要切換'p'和'q'頁嗎?這是其他pdf文件的共同點,或只是特定於此? (2)我還想知道如何理解pdf頁面上的座標系,即p.mediaBox.lowerLeft是我們在查看pdf文件時看到的實際左下角或右上角?是我們看到的沿水平或垂直方向的第一個座標嗎? – Tim