Возникла проблема при использовании Tess4j

Я пытаюсь создать TessBaseAPI с помощью TessBaseAPICreate() и столкнулся с ошибкой, как показано ниже:

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();
    }

Я исключил com.sun.jna из зависимости net.sourceforge.tess4j и добавил новую зависимость jna как

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

Есть ли что-то особенное, что я должен отметить для этой проблемы? Спасибо.


person Shawn Chen    schedule 04.09.2017    source источник
comment
Версии tesseract — 4.0, а tess4j — 3.4.0.   -  person Shawn Chen    schedule 04.09.2017


Ответы (1)


У меня была такая же проблема с tesseract версии 4.0 (скомпилированной из исходников) и tess4j версии 3.4.0 в Ubuntu 16.4 LTS. Поскольку я не смог найти никакого решения, я удалил tesseract версии 4 и установил версию 3.04 из репозиториев Ubuntu. Я изменил версию tess4j в своем pom.xml на 3.0.0, и проблема была решена.

Я предполагаю, что tess4j с версией 3.4.0 не совместим с tesserct версии 4, которая, в конце концов, все еще находится в альфа-версии.

Надеюсь, это поможет.

person szarghani    schedule 05.09.2017
comment
Да, это проблема совместимости. Я добавил зависимость maven для моментального снимка tess4j 4.0.0. Теперь это работает. - person Shawn Chen; 06.09.2017