发布
社区首页 >问答首页 >使用R在PDF中存储Tesseract输出

使用R在PDF中存储Tesseract输出
EN

Stack Overflow用户
提问于 2021-08-29 20:56:20
回答 3查看 309关注 0票数 1

我正在尝试使用R接口来测试tesseract来创建一个包含嵌入式文本的PDF文件。我已经看到了前面的问题tesseract (v3.03) output as PDF,但是它是关于使用命令行接口进行tesseract的。这个问题是关于R界面的。我将tessedit_create_pdf选项设置为1,但没有得到新的pdf文件。我没有看到设置输出文件的选项。如何使tesseract创建一个带有嵌入式文本的pdf?下面的代码在内存中生成很好的文本,但是没有PDF文件。

代码语言:javascript
代码运行次数:0
复制
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]])

此图像可用于测试。

EN

回答 3

Stack Overflow用户

发布于 2022-09-21 11:44:54

我已经能够用下面的代码将您的图像转换为可搜索的PDF,方法是使用RDCOMClient而不是tesseract。我想你可能对此感兴趣。

首先,图像被转换为扫描的PDF。然后,使用Word的OCR将PDF转换为Word文档。最后,Word文档被保存为一个可搜索的PDF文件。

代码语言:javascript
代码运行次数:0
复制
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
票数 1
EN

Stack Overflow用户

发布于 2022-09-21 20:45:01

在我的工作中,有时我从R调用ECopy (http://www.ecopysoftware.com/)将扫描的pdfs转换为可搜索的pdfs。ECopy不是一个自由软件,但它是强大的。

我使用以下功能:

代码语言:javascript
代码运行次数:0
复制
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调用它。

票数 0
EN

Stack Overflow用户

发布于 2022-09-21 21:48:02

我在我的计算机上安装了tesseract (请参阅https://indiantechwarrior.com/how-to-install-tesseract-on-windows/),并且能够使用以下代码以可搜索的PDF格式转换图像:

代码语言:javascript
代码运行次数:0
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68976835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档