Я пытаюсь перебрать несколько 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)
Я не знаю, как объединить PDF-файлы с R, но если у вас установлен Python, вы можете использовать приведенный ниже код, чтобы объединить все 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-and-merging-pdfs-with-python/
Похоже, вы переписываете
docketв каждой итерации цикла