|
|
@@ -976,7 +976,9 @@ class PDFPageInterpreter:
|
|
|
|
|
|
def process_page(self, page: PDFPage) -> None:
|
|
|
# log.debug("Processing page: %r", page)
|
|
|
- (x0, y0, x1, y1) = page.mediabox
|
|
|
+ # print(page.mediabox,page.cropbox)
|
|
|
+ # (x0, y0, x1, y1) = page.mediabox
|
|
|
+ (x0, y0, x1, y1) = page.cropbox
|
|
|
if page.rotate == 90:
|
|
|
ctm = (0, -1, 1, 0, -y0, x1)
|
|
|
elif page.rotate == 180:
|
|
|
@@ -990,7 +992,7 @@ class PDFPageInterpreter:
|
|
|
self.device.fontmap=self.fontmap # hack
|
|
|
ops_new=self.device.end_page(page)
|
|
|
page_objids=[i.objid for i in page.contents]
|
|
|
- # 上面渲染的时候会根据 mediabox 减掉页面偏移得到真实坐标,这里输出的时候需要用 cm 把页面偏移加回来
|
|
|
+ # 上面渲染的时候会根据 cropbox 减掉页面偏移得到真实坐标,这里输出的时候需要用 cm 把页面偏移加回来
|
|
|
ops_full=f'{page_objids[0]} 0 obj\n<<>>stream\nq {ops_base}Q 1 0 0 1 {x0} {y0} cm {ops_new}\nendstream\nendobj\n' # ops_base 里可能有图,需要让 ops_new 里的文字覆盖在上面,使用 q/Q 重置位置矩阵
|
|
|
# if log.isEnabledFor(logging.DEBUG):
|
|
|
# log.debug(f'OP_BASE {ops_base}')
|