r语言 - 循环访问 PDF 以创建数据帧



我正在尝试循环多个pdf,并使用rbind组合它们。现在我有:

for (i in 1:length(all_pdfs)) {
   docket <- pdftools::pdf_text(all_pdfs[[i]]) %>%
     as.tibble() %>%
     mutate(month = as.character(d$docket_month[[i]]))
  }

all_pdfs是pdf的列表。但是,Docket仅将第一个PDF作为数据框架返回。我究竟做错了什么?提前致谢。

您可以尝试在列表中构建文件,然后将列表列入列表。

docket <- list()
for (i in 1:length(all_pdfs)) {
          docket[[i]] <- pdftools::pdf_text(all_pdfs[[i]]) %>%
          as.tibble() %>%
          mutate(month = as.character(d$docket_month[[i]]))
       }
docket <- unlist(docket)

我不知道如何与r合并PDF文件,但是如果您安装了Python,则可以使用Tom下面的代码将所有PDF文件合并到一个文件中。

# pdf_merger.py
import glob
from PyPDF2 import PdfFileWriter, PdfFileReader
def merger(output_path, input_paths):
    pdf_writer = PdfFileWriter()
    for path in input_paths:
        pdf_reader = PdfFileReader(path)
        for page in range(pdf_reader.getNumPages()):
            pdf_writer.addPage(pdf_reader.getPage(page))
    with open(output_path, 'wb') as fh:
        pdf_writer.write(fh)

if __name__ == '__main__':
    paths = glob.glob('C:/your_path/*.pdf')
    paths.sort()
    merger('pdf_merger.pdf', paths)

https://www.blog.pythonlibrary.org/2018/04/11/splitting-andsplitting-and-merging-pdfs-with-python/

最新更新