3

嗨,我正在尝试更改 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中给出的图像上的文本

4

2 回答 2

2

我认为setColors需要一本字典,请在此处查看文档

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")

在此处输入图像描述

于 2020-03-06T07:01:00.810 回答
0

我尝试了以下方法,它奏效了

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)
于 2021-11-22T18:35:07.377 回答