将 png 文件转换为 txt 文件
Posted
技术标签:
【中文标题】将 png 文件转换为 txt 文件【英文标题】:Convert png files to txt files 【发布时间】:2019-08-29 08:40:06 【问题描述】:我有 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 文件都有一个文本文件:
来自:file1.png、file2.png、file3.png...
收件人:file1.txt、file2.txt、file3.txt...
但实际结果是一个包含所有png文件文本的文本文件。
【问题讨论】:
您的代码有几个问题。您的list.files
模式不会列出 PDF 文件,而是列出名称中包含字符串 'pdf'
的所有文件。那行代码上面的注释是完全错误的,它根本没有解释这行代码在做什么。您也没有向我们展示关键的一点——即,您实际上是如何尝试 OCR 文件的,以及失败的原因。相反,您显示的代码实际上与您的问题无关。
【参考方案1】:
我猜你用png -> text
位省略了这个位,但我假设你使用了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
)
【讨论】:
以上是关于将 png 文件转换为 txt 文件的主要内容,如果未能解决你的问题,请参考以下文章