Intellij 中的 Tesseract 无法读取 pdf,因为 'gsdll64' 库无法加载

Tesseract in Intellij cannot read pdf because 'gsdll64' library is unable to load

我正在尝试使用 Tesseract OCR reader 阅读 pdf。不过它对图像文件非常有效。

这是我所做的:

  1. 创建 Maven 项目。
  2. 添加了 tess4j 版本 4.4.1 作为依赖项。
  3. 已将 java 版本更改为 13
  4. 添加了以下代码:

    import net.sourceforge.tess4j.Tesseract;
    
    import java.io.File;
    
    public class OcrReader {
    
    public static void main(String[] args) throws Exception{
        String inputFilePath = "C:\Users\non\Desktop\1.pdf";
    
        Tesseract tesseract = new Tesseract();
        tesseract.setDatapath("C:\Users\non\Desktop\tessdata\");
      //tesseract.setLanguage("dan");
        String string = tesseract.doOCR(new File(inputFilePath));
        System.out.println(string);
    }
    }
    

之后出现以下错误:

10:40:46.208 [main] ERROR net.sourceforge.tess4j.util.PdfGsUtilities - Unable to load library 'gsdll64':
The specified module could not be found.

The specified module could not be found.

The specified module could not be found.

Native library (win32-x86-64/gsdll64.dll) not found in resource path (C:\Users\non\IdeaProjects\OcrSample\target\classes;C:\Users\non\.m2\repository\net\sourceforge\tess4j\tess4j.4.1\tess4j-4.4.1.jar;C:\Users\non\.m2\repository\net\java\dev\jna\jna.4.0\jna-5.4.0.jar;C:\Users\non\.m2\repository\com\github\jai-imageio\jai-imageio-core.4.0\jai-imageio-core-1.4.0.jar;C:\Users\non\.m2\repository\org\ghost4j\ghost4j.0.1\ghost4j-1.0.1.jar;C:\Users\non\.m2\repository\log4j\log4j.2.17\log4j-1.2.17.jar;C:\Users\non\.m2\repository\commons-beanutils\commons-beanutils.9.2\commons-beanutils-1.9.2.jar;C:\Users\non\.m2\repository\commons-collections\commons-collections.2.1\commons-collections-3.2.1.jar;C:\Users\non\.m2\repository\org\apache\xmlgraphics\xmlgraphics-commons.4\xmlgraphics-commons-1.4.jar;C:\Users\non\.m2\repository\com\lowagie\itext.1.7\itext-2.1.7.jar;C:\Users\non\.m2\repository\org\apache\pdfbox\pdfbox.0.17\pdfbox-2.0.17.jar;C:\Users\non\.m2\repository\org\apache\pdfbox\fontbox.0.17\fontbox-2.0.17.jar;C:\Users\non\.m2\repository\commons-logging\commons-logging.2\commons-logging-1.2.jar;C:\Users\non\.m2\repository\org\apache\pdfbox\pdfbox-tools.0.17\pdfbox-tools-2.0.17.jar;C:\Users\non\.m2\repository\org\apache\pdfbox\pdfbox-debugger.0.17\pdfbox-debugger-2.0.17.jar;C:\Users\non\.m2\repository\org\apache\pdfbox\jbig2-imageio.0.2\jbig2-imageio-3.0.2.jar;C:\Users\non\.m2\repository\commons-io\commons-io.6\commons-io-2.6.jar;C:\Users\non\.m2\repository\net\sourceforge\lept4j\lept4j.12.3\lept4j-1.12.3.jar;C:\Users\non\.m2\repository\org\jboss\jboss-vfs.2.14.Final\jboss-vfs-3.2.14.Final.jar;C:\Users\non\.m2\repository\org\jboss\logging\jboss-logging.1.4.GA\jboss-logging-3.1.4.GA.jar;C:\Users\non\.m2\repository\ch\qos\logback\logback-classic.2.3\logback-classic-1.2.3.jar;C:\Users\non\.m2\repository\ch\qos\logback\logback-core.2.3\logback-core-1.2.3.jar;C:\Users\non\.m2\repository\org\slf4j\slf4j-api.7.25\slf4j-api-1.7.25.jar;C:\Users\non\.m2\repository\org\slf4j\jul-to-slf4j.7.28\jul-to-slf4j-1.7.28.jar;C:\Users\non\.m2\repository\org\slf4j\jcl-over-slf4j.7.28\jcl-over-slf4j-1.7.28.jar;C:\Users\non\.m2\repository\org\slf4j\log4j-over-slf4j.7.28\log4j-over-slf4j-1.7.28.jar)

10:40:46.849 [main] DEBUG org.apache.fontbox.ttf.PostScriptTable - No PostScript name information is provided for the font Cambria

我该如何解决这个问题?

您是否正确安装了 Ghostscript?

它应该包含一个文件 gsdll32.dll。

如果没有,请从此 link https://www.ghostscript.com/download/gsdnld.html 和 运行 下载 Win64 的 Ghostscript 安装程序

安装完成后,

目录下应该会有一个文件gsdll64.dll

%your_install_dir%\gs\gs9.05\bin\

希望这能解决您的问题。