在 PDF 文件中查找文本位置

新手上路,请多包涵

我有一个 PDF 文件,我正在尝试在 PDF 中查找特定文本并使用 Python 突出显示它。我找到 了 PyPDF2 ,当我们在文件中给出所需高亮位置的坐标时,它可以 高亮显示 PDF 的一部分

我正在尝试找到一种工具,它可以为我提供 PDF 中给定文本的位置。

原文由 Simdan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

PyMuPDF 可以通过坐标查找文本。您可以将其与 PyPDF2 突出显示方法结合使用来完成您所描述的内容。 或者您可以只 使用 PyMuPDF 来突出显示文本

以下是使用 PyMuPDF 查找文本和突出显示的示例代码:

 import fitz

### READ IN PDF
doc = fitz.open("input.pdf")

for page in doc:
    ### SEARCH
    text = "Sample text"
    text_instances = page.search_for(text)

    ### HIGHLIGHT
    for inst in text_instances:
        highlight = page.add_highlight_annot(inst)
        highlight.update()

### OUTPUT
doc.save("output.pdf", garbage=4, deflate=True, clean=True)

原文由 Cilantro Ditrek 发布,翻译遵循 CC BY-SA 4.0 许可协议

在新版本的 PyMuPDF 中,一些方法被弃用了。这是最新版本的示例代码。其次,我还为每个亮点添加了评论,方便用户横向浏览。

 pdfIn = fitz.open("page-4.pdf")

for page in pdfIn:
    print(page)
    texts = ["SEPA", "voorstelnummer"]
    text_instances = [page.search_for(text) for text in texts]

    # coordinates of each word found in PDF-page
    print(text_instances)

    # iterate through each instance for highlighting
    for inst in text_instances:
        annot = page.add_highlight_annot(inst)
        # annot = page.add_rect_annot(inst)

        ## Adding comment to the highlighted text
        info = annot.info
        info["title"] = "word_diffs"
        info["content"] = "diffs"
        annot.set_info(info)
        annot.update()

# Saving the PDF Output
pdfIn.save("page-4_output.pdf")

原文由 RevolverRakk 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题