R语言 从PDF中提取注解

vxbzzdmp  于 2023-10-13  发布在  其他
关注(0)|答案(4)|浏览(110)

我有一个.pdf文件的集合,其中包含在Adobe Acrobat中添加的注解。我希望能够分析这些评论,但我有点坚持提取它们。我看过pdftools包,但它似乎只能提取文本,而不能提取注解。有没有一种方法可以提取R中的注解?

ndasle7k

ndasle7k1#

PyMuPDF(https://pymupdf.readthedocs.io/en/latest/)是我发现的唯一一个可以工作的Python库。
在基于Debian/Ubuntu的发行版中安装:

apt-get install python3-fitz

脚本:

import fitz
doc = fitz.open("example.pdf")
for i in range(doc.pageCount):
  page = doc[i]
  for annot in page.annots():
    print(annot.info["content"])
wlwcrazw

wlwcrazw2#

您是否尝试过PoDoFo或其他可以访问PDF元素的开源工具?如果您不想编程,也可以在stackoverflow上查看Extracting PDF annotations/comments here

yftpprvb

yftpprvb3#

Screenshot of how >>将注解导出为Excel文件,然后将其导入R?
例如:在PDF-X-change Editor中,转到comment > summarize comments > export,转换为您想要的任何格式。类似于Adobe。

1l5u6lss

1l5u6lss4#

您可以考虑从R调用Python包,如下所示:

library(reticulate)

conda_Env <- conda_list()

if(any(conda_Env[, 1] == "PyMuPDF") == FALSE)
{
  reticulate::conda_create(envname = "PyMuPDF", python_version = "3.7.16")
  reticulate::conda_install(envname = "PyMuPDF", packages = "PyMuPDF", pip = TRUE)
}

reticulate::use_condaenv(condaenv = "PyMuPDF")
path_To_PDF <- "C:/Annotated text.pdf"
fitz <- import("fitz")
doc <- fitz$open(path_To_PDF)
nb_Page <- doc$page_count
list_Comments <- list()
list_Highlights <- list()

##########################
#### Highlighted text ####
##########################
for(i in 1 : nb_Page)
{
  page <- doc[0]
  annots <- page$annots()
  list_Highlights[[i]] <- page$get_textbox(iter_next(annots)$rect)
}

########################
#### Commented text ####
########################
counter <- 1

for(i in 1 : nb_Page)
{
  page <- doc[0]
  annots <- page$annots()
  cond <- TRUE

  while(cond == TRUE)
  {
    content <- iter_next(annots)$info$content
    cond <- !is.null(content)
    list_Comments[[counter]] <- content
    counter <- counter + 1
  }
}

相关问题