0

我正在搜索pdf中的文本并提取一个四边形并在其周围添加一个polygon_annot。但我想缩放polygon_annot。我怎样才能做到这一点?

下面是我的代码:

for inst in text_instances:
    inst =  inst.transform(fitz.Matrix(2, 2))
    print(inst)
    print(inst.rect)
    # re-ordering the points in list counter-clockwise
    inst[2], inst[3] = inst[3], inst[2]
    highlight = page.add_polygon_annot(inst)

我目前正在使用 inst.transform(fitz.Matrix(2, 2)) 对其进行缩放,但这只是将值相乘。如何从四边形的中心缩放值?

4

1 回答 1

0

您可以使用morph缩放四边形。
参考文档:https ://pymupdf.readthedocs.io/en/latest/quad.html#Quad.morph

下面是我用来按中心缩放变形的函数:

def getPolygon(quad, scale=1):
    [sumX, sumY] = [0, 0]
    for point in quad:
        sumX += point[0]
        sumY += point[1]
    avgX = sumX/4
    avgY = sumY/4

    # Scale the rectange using Quad.morph(): https://pymupdf.readthedocs.io/en/latest/quad.html#Quad.morph
    quad= quad.morph(fitz.Point(avgX,  avgY), fitz.Matrix(scale, scale))
    return quad
于 2021-07-28T05:51:04.433 回答