我正在尝试使用R接口来测试tesseract来创建一个包含嵌入式文本的PDF文件。我已经看到了前面的问题tesseract (v3.03) output as PDF,但是它是关于使用命令行接口进行tesseract的。这个问题是关于R界面的。我将tessedit_create_pdf
选项设置为1,但没有得到新的pdf文件。我没有看到设置输出文件的选项。如何使tesseract创建一个带有嵌入式文本的pdf?下面的代码在内存中生成很好的文本,但是没有PDF文件。
library(tesseract)
packageVersion("tesseract")
[1] ‘4.1.1’
eng1P <- tesseract(language = "eng",
options = list(tessedit_pageseg_mode = 1,
tessedit_create_pdf=1))
text0 <- tesseract::ocr("TestImage.png", engine = eng1P)
cat(text0[[1]])
此图像可用于测试。
发布于 2022-09-21 11:44:54
我已经能够用下面的代码将您的图像转换为可搜索的PDF,方法是使用RDCOMClient而不是tesseract。我想你可能对此感兴趣。
首先,图像被转换为扫描的PDF。然后,使用Word的OCR将PDF转换为Word文档。最后,Word文档被保存为一个可搜索的PDF文件。
library(RDCOMClient)
library(magick)
################################################
#### Step 1 : We convert the image to a PDF ####
################################################
path_PDF <- "D:\\Dropbox\\Reponses_Stackoverflow\\temp.pdf"
path_PNG <- "D:\\Dropbox\\Reponses_Stackoverflow\\lnCHO.png"
path_Word <- "D:\\Dropbox\\Reponses_Stackoverflow\\temp.docx"
pdf(path_PDF, height = 12, width = 8)
im <- image_read(path_PNG)
plot(im)
dev.off()
####################################################################
#### Step 2 : We use the OCR of Word to convert the PDF to word ####
####################################################################
wordApp <- COMCreate("Word.Application")
wordApp[["Visible"]] <- TRUE
wordApp[["DisplayAlerts"]] <- FALSE
doc <- wordApp[["Documents"]]$Open(normalizePath(path_PDF),
ConfirmConversions = FALSE)
doc$SaveAs2(path_Word)
###############################################
#### Step 3 : Convert word document to pdf ####
###############################################
wordApp[["ActiveDocument"]]$SaveAs(path_PDF, FileFormat = 17) # FileFormat = 17 saves as .PDF
doc$Close()
wordApp$Quit() # quit wordApp
发布于 2022-09-21 20:45:01
在我的工作中,有时我从R调用ECopy (http://www.ecopysoftware.com/)将扫描的pdfs转换为可搜索的pdfs。ECopy不是一个自由软件,但它是强大的。
我使用以下功能:
ecopy_Scanned_PDF_To_Numeric_PDF <- function(directory_Scanned_PDF, directory_Numeric_PDF)
{
path_To_BatchConverter <- "C:/Program Files (x86)/Nuance/eCopy PDF Pro Office 6/BatchConverter.com"
args <- paste0("-I", directory_Scanned_PDF, "\\*.pdf -O", directory_Numeric_PDF, " -Tpdfs -Lfre -W -V1.5 -J -Ao")
system2(path_To_BatchConverter, args = args)
}
也许您可以在您的环境中安装ECopy并从R调用它。
发布于 2022-09-21 21:48:02
我在我的计算机上安装了tesseract (请参阅https://indiantechwarrior.com/how-to-install-tesseract-on-windows/),并且能够使用以下代码以可搜索的PDF格式转换图像:
path_Tesseract <- "C:/Program Files (x86)/Tesseract-OCR/tesseract.exe"
args <- "D:/stackoverflow110.png D:/stackoverflow110 -l eng PDF"
system2(command = path_Tesseract, args = args)
https://stackoverflow.com/questions/68976835
复制相似问题