更新:スクリプトが動作するstardtのおかげで! pdfは別のページです。私はもう一方のスクリプトを試してみましたが、それぞれのpdfページも正しく吐き出しましたが、ページ番号の順序が正しいことがあります。たとえば、pdfファイルのページ25-28では、印刷されたページ番号は14,15,17,16です。なぜ私は不思議に思っていましたか? PDF全体はhttp://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf私のコードがスキャンされたPDFの各ページを正しく分割しないのはなぜですか?
からダウンロードできます。オリジナル:私はスキャンされたPDFを持っています。ここでは、2つの紙ページがpdfページに並んでいます。私は元の左半分が2つの新しいpdfページの前になるように、pdfページを2つに分割したいと思います。 pdfはのように見えます。ここで
がGillesに触発un2up
という名前の私の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)
私は、コマンドがun2up <page.pdf> out.pdf
ことで、端末で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を2ページごとに切り替える必要がある理由を知っていますか?これは他のpdfファイルにも共通しているのですか? (2)pdfページ上の座標系を理解する方法、つまりp.mediaBox.lowerLeftはPDFファイルを表示するときに実際に表示される実際の下端または上端を理解する方法を知りましたか?私たちが見る水平または垂直方向の最初の座標ですか? – Tim