如何在R中逐行读取PDF?解决pdftools包read_pdf()异常问题
恢复pdftools::read_pdf()逐行读取的方法
以下是几种可行的解决思路,按优先级排序:
显式指定
layout参数
pdftools的read_pdf()函数中,layout = TRUE参数会保留PDF的原始文本布局,将内容按行拆分输出。如果近期包版本更新导致默认行为变化,显式设置该参数即可恢复逐行读取:library(pdftools) # 强制启用布局保留模式 pdf_data <- read_pdf("target_file.pdf", layout = TRUE)回退到稳定版本
如果是pdftools包更新后引入的行为变更,可回退到之前能正常工作的版本。以版本3.3.0为例(替换为你之前使用的版本号):# 卸载当前包 remove.packages("pdftools") # 安装指定旧版本 install.packages("https://cran.r-project.org/src/contrib/Archive/pdftools/pdftools_3.3.0.tar.gz", repos = NULL, type = "source")注意:安装源码包可能需要系统安装poppler依赖(如Linux的
libpoppler-dev、macOS的poppler)。手动拆分整页文本
如果上述方法无效,可先用pdf_text()获取整页文本,再按换行符手动拆分:library(pdftools) # 获取每一页的整段文本 raw_pages <- pdf_text("target_file.pdf") # 拆分每一页为行,过滤空行 line_by_line <- lapply(raw_pages, function(page) { lines <- strsplit(page, "\n")[[1]] lines[nchar(lines) > 0] })
内容的提问来源于stack exchange,提问作者Dan G
相关产品推荐
相关产品推荐

