Intellij 中的 Tesseract 无法读取 pdf,因为 'gsdll64' 库无法加载
Tesseract in Intellij cannot read pdf because 'gsdll64' library is unable to load
我正在尝试使用 Tesseract OCR reader 阅读 pdf。不过它对图像文件非常有效。
这是我所做的:
- 创建 Maven 项目。
- 添加了 tess4j 版本 4.4.1 作为依赖项。
- 已将 java 版本更改为 13。
添加了以下代码:
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\
希望这能解决您的问题。
我正在尝试使用 Tesseract OCR reader 阅读 pdf。不过它对图像文件非常有效。
这是我所做的:
- 创建 Maven 项目。
- 添加了 tess4j 版本 4.4.1 作为依赖项。
- 已将 java 版本更改为 13。
添加了以下代码:
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\
希望这能解决您的问题。