使用Tess4j时遇到问题

时间:2017-09-04 03:45:24

标签: tess4j

我正在尝试使用TessBaseAPICreate()创建TessBaseAPI并遇到如下错误:

java.lang.UnsatisfiedLinkError: Error looking up function 'TessPDFRendererCreateTextonly': dlsym(0x7fc93f349590, TessPDFRendererCreateTextonly): symbol not found
    at com.sun.jna.Function.<init>(Function.java:212)
    at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:541)
    at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:518)
    at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:504)
    at com.sun.jna.Native.register(Native.java:1655)
    at com.sun.jna.Native.register(Native.java:1529)
    at com.sun.jna.Native.register(Native.java:1252)
    at net.sourceforge.tess4j.TessAPI1.<clinit>(TessAPI1.java:41)
    at com.mail.service.Tess4jServiceImpl.<init>(Tess4jServiceImpl.java:23)

我的代码如下

public class Tess4jServiceImpl {
    private String imageFilePath;
    private TessAPI1.TessBaseAPI tessBaseAPI;
    private static String tessDataPath = "***/tessdata/";
    public Tess4jServiceImpl(String imageFilePath){
        this.imageFilePath = imageFilePath;
        tessBaseAPI = TessAPI1.TessBaseAPICreate();
    }

我在net.sourceforge.tess4j的依赖项中排除了com.sun.jna,并添加了新的jna依赖项

<dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
            <version>4.2.1</version>
        </dependency>

这个问题我有什么特别的注意事项吗? 感谢。

1 个答案:

答案 0 :(得分:1)

我在Ubuntu 16.4 LTS上遇到了与tesseract 4.0版(源代码编译)和tess4j版本3.4.0相同的问题。由于我找不到任何解决方案,我已卸载tesseract版本4并从Ubuntu存储库安装了3.04版本。我将pom.xml中的tess4j版本更改为3.0.0,问题解决了。

我猜,版本3.4.0的tess4j与tesserct版本4不兼容,后者仍然是alpha版本。

我希望这会有所帮助。