実現したいこと
pythonでpdfのページを2等分したい(内部情報も含め)です
下記のコードでpdfの2等分自体はできるのですが、2等分した後、内部情報が分割する前の状態で保存されてしまいます
分割した後に内部情報を含めた解析を行いたいので、
pdfのオブジェクト自体も2等分したい感じです
python
1import copy 2import sys 3import math 4from PyPDF2 import PdfFileWriter, PdfFileReader 5 6src_f = open(src, 'r+b') 7dst_f = open(dst, 'w+b') 8 9input = PdfFileReader(src_f) 10output = PdfFileWriter() 11 12for i in range(input.getNumPages()): 13 p = _input.getPage(i) 14 content = p.extractText() 15 q = copy.copy(p) 16 q.mediaBox = copy.copy(p.mediaBox) 17 18 x1, x2 = p.mediaBox.lowerLeft 19 x3, x4 = p.mediaBox.upperRight 20 21 x1, x2 = math.floor(x1), math.floor(x2) 22 x3, x4 = math.floor(x3), math.floor(x4) 23 x5, x6 = math.floor(x3/2), math.floor(x4/2) 24 25 if x3 > x4: 26 # horizontal 27 p.mediaBox.upperRight = (x5, x4) 28 p.mediaBox.lowerLeft = (x1, x2) 29 30 q.mediaBox.upperRight = (x3, x4) 31 q.mediaBox.lowerLeft = (x5, x2) 32 else: 33 # vertical 34 p.mediaBox.upperRight = (x3, x4) 35 p.mediaBox.lowerLeft = (x1, x6) 36 37 q.mediaBox.upperRight = (x3, x6) 38 q.mediaBox.lowerLeft = (x1, x2) 39 40 output.addPage(p) 41 output.addPage(q) 42 43output.write(dst_f) 44src_f.close() 45dst_f.close()
pdfのオブジェクトの中身を見て、そのオブジェクトが分割したmediabox内に入ってなければ、
そのオブジェクト自体も削除すればいいんでしょうが、その方法がわからないです...
なお、pypdf2を解析に使っていますが、特にこだわりはありません
pymupdf, pdfminerなどでも同じようなことができたら嬉しいです
ご教授のほどよろしくお願いいたします
バージョン情報
python3.7
あなたの回答
tips
プレビュー