如何使用 python 中的 fitz 模块更改 pdf 中的突出显示颜色

How to change the highlight color in pdf using fitz module in python

您好,我正在尝试更改 pdf 中的突出显示颜色,但无法这样做。 默认的突出显示颜色是黄色,但我想更改它 以下是我的代码:

    import fitz

    doc = fitz.open(r"path\input.pdf")

    page=doc[0]
    text="some text"
    text_instances = page.searchFor(text)


    for inst in text_instances:
        highlight = page.addHighlightAnnot(inst)
        highlight.setColors(colors='Red')
        highlight.update()


    doc.save(r"path\output.pdf")    

还有我如何一起搜索整个 pdf 而不仅仅是一页

以及如何突出显示 pdf 中给定图像上的文本

我认为 setColors 需要字典,请查看文档 here

import fitz

doc = fitz.open("test.pdf")


page = doc[0]

text = "result"

text_instances = page.searchFor(text)

for inst in text_instances:
    highlight = page.addHighlightAnnot(inst)
    highlight.setColors({"stroke":(0, 0, 1), "fill":(0.75, 0.8, 0.95)})
    highlight.update()


doc.save("output.pdf")

我尝试了以下方法并且有效

import fitz

doc = fitz.open(r"path\to\pdf\file.pdf")
page = doc[6]
# highlighting a pre-determined coordinate
highlight = page.addHighlightAnnot((10, 628.9634743875279, 642.0, 640.9634743875279))
highlight.set_colors(stroke=[1, 0.8, 0.8]) # light red color (r, g, b)
highlight.update()

在此代码片段中,我只是尝试使用文本坐标进行注释,并且我是从外部代码获取这些坐标的。 我使用了更多颜色:

highlight.set_colors(stroke=[0.5, 1, 1]) # light aqua
highlight.set_colors(stroke=[0.5, 0, 0]) # dark brown

确定颜色的简单方法是将 255 乘以每个值。

从每个值中除以 255 以换算(将 RGB 转换为这种表示法)

示例:

stroke=[0.5, 1, 1] # RGB(255*0.5, 255*1, 255*1) = RGB(127, 255, 255)