使用 PyMuPDF "draw_rect"函数工作不一致



我从几个PDF中屏蔽了一些信息,但其中一些是由";draw_ rect";函数绘制不正确。我检查了矩形,它们看起来很对,我也在使用";add_redact_annot";使用完全相同的矩形,效果良好。

def hide_text_rects(page, rects):
for rect in rects:
page.add_redact_annot(rect)
page.draw_rect(rect, color=(0,0,0), fill=(0,0,0))

矩形看起来像是镜像和缩放的。我真的不知道该怎么办,因为我在文档中找不到任何相关信息。

编辑:我发现1.7版的PDF是正确工作的。其他的是1.5版本。

这种行为的可能原因是对页面坐标系的草率规范。例如,PDF中的标准点(0,0(=左下角可能已被重新定义为左上角。如果这种类型的坐标更改没有包含在PDF堆叠运算符q/Q中(应该是这样(,那么附加到页面/Contents的任何插入(文本、绘图等(都会在错误的假设下发生,并出现错位。在进行任何插入之前,通过执行page.clean_contents()来治愈此问题。您也可以检查page.is_wrapped是否需要这样做。也请参阅文档-有一个自己的部分处理这个问题。

最新更新