我正在使用Tess4J(JNA包装tesseract),并尝试从单页PDF中调用tess.doOCR(myFile)
到OCR文本。
我安装了GhostScript(使用yum install ghostscript
),gs -h
正常工作。
我的应用服务器正在使用64-bit JVM
,我在类路径中有gsdll64.dll
和64位tesseract dll' liblept168.dll
和libtesseract302.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下载。任何建议都将不胜感激。
或者这与符号链接有什么关系?
答案 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