Tess4J - 在资源路径中找不到本机库(linux-x86-64 / libtesseract.so)

时间:2014-10-26 20:35:35

标签: pdf tesseract ghostscript tess4j

我正在使用Tess4J(JNA包装tesseract),并尝试从单页PDF中调用tess.doOCR(myFile)到OCR文本。

我安装了GhostScript(使用yum install ghostscript),gs -h正常工作。

我的应用服务器正在使用64-bit JVM,我在类路径中有gsdll64.dll和64位tesseract dll' liblept168.dlllibtesseract302.dll

调用tess.doOCR(myFile)时会记录:

GPL Ghostscript 8.70 (2014-09-22)
Copyright (C) 2014 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1

然后它就在那里停止了。该计划没有进一步。

更新 -

看起来真正的问题来自这个错误:

java.lang.UnsatisfiedLinkError: Unable to load library 'tesseract': Native library (linux-x86-64/libtesseract.so) not found in resource path

经过大量浏览后,我找不到一个方便的位置来查找此libtesseract.so文件,而且我不确定如何将其放到我的Linux应用服务器上。我读过,也许我需要下载一些C ++运行时,但我没有看到Linux下载。任何建议都将不胜感激。

或者这与符号链接有什么关系?

4 个答案:

答案 0 :(得分:2)

修复对我来说很简单,只需从命令行执行sudo apt-get install tesseract-ocr。对于Linux,您不必担心DDL库或jvm版本。从apt-get安装tessearct就可以了。

答案 1 :(得分:0)

这些DLL适用于Windows。对于Linux,您需要从build安装或Tesseract source

那个GS版本,8.70,已经很老了。 Tess4J使用的最新Ghost4J库与此不兼容。

答案 2 :(得分:0)

Tess4J应该包含必需的库。但是,您需要先提取它们。

这应该可以解决问题:

File tmpFolder = LoadLibs.extractTessResources("win32-x86-64"); // replace platform
System.setProperty("java.library.path", tmpFolder.getPath());

您应使用平台替换extractTessResources(..)的参数。您可以通过查看Tess4J jar文件找到可能的选项。

这样,您无需在系统上安装Tesseract。

最近我写了一个blog post about Tess4J,其中使用了这种技术。如果您需要更多信息或正在运行的示例项目,它可能会有所帮助。

答案 3 :(得分:-1)

sudo apt-get update
sudo apt-get install tesseract-ocr 

通过git下载测试数据

https://github.com/tesseract-ocr/tessdata