Преобразование файлов png в файлы txt

У меня есть 100 отсканированных PDF-файлов, и мне нужно преобразовать их в текстовые файлы.

Сначала я преобразовал их в файлы png (см. сценарий ниже), теперь мне нужна помощь, чтобы преобразовать эти 100 файлов png в 100 текстовых файлов.

library(pdftools)
library("tesseract")

#location
dest <- "P:\\TEST\\images to text"

#making loop for all files
myfiles <- list.files(path = dest, pattern = "pdf",  full.names = TRUE)

#Convert files to png
sapply(myfiles, function(x)
  pdf_convert(x, format = "png", pages = NULL, 
              filenames = NULL, dpi = 600, opw = "", upw = "", verbose = TRUE))

#read files
cat(text)

Я ожидаю иметь текстовый файл для каждого файла png:

From: file1.png, file2.png, file3.png...

To: file1.txt, file2.txt, file3.txt...

Но фактическим результатом является один текстовый файл, содержащий текст всех файлов png.

Есть несколько проблем с вашим кодом. В вашем шаблоне list.files перечислены не файлы PDF, а все файлы со строкой 'pdf' в имени. Комментарий над этой строкой кода совершенно неверен, он вообще не объясняет, что делает эта строка. Вы также не показали нам самого важного, а именно, как вы на самом деле пытаетесь распознать файлы и что не получается. Вместо этого код, который вы показали, фактически не имеет отношения к вашему вопросу.

Konrad Rudolph 08.04.2019 11:13
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
348
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предполагаю, что вы пропустили бит с teh png -> text bit, но я предполагаю, что вы использовали library(tesseract).

Вы можете сделать следующее в своем коде:

library(tesseract)
eng <- tesseract("eng")
sapply(myfiles, function(x) {
  png_file <- gsub("\\.pdf", ".png", x)
  txt_file <- gsub("\\.pdf", ".txt", x)
  pdf_convert(x, format = "png", pages = 1, 
              filenames = png_file, dpi = 600, verbose = TRUE)

  text <- ocr(png_file, engine = eng)
  cat(text, file = txt_file)
  ## just return the text string for convenience
  ## we are anyways more interested in the side effects
  text
})

Другие вопросы по теме