本教程展示如何OCR图像和光学字符识别结果导出到一个JSON文件在Java应用程序中使用LEADTOOLS SDK。
概述 | |
---|---|
总结 | 本教程介绍了如何将OCR JSON结果保存在一个Java应用程序。 |
完成时间 | 30分钟 |
项目 | 下载教程项目(2 KB) |
平台 | Java应用程序 |
IDE | Eclipse或IntelliJ |
运行许可证 | 下载LEADTOOLS |
试试用另一种语言 |
|
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证教程,在工作之前OCR结果导出到JSON - Java教程。
从项目中创建的副本添加引用和设置一个许可证教程。如果项目是不可用,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。可以由当地添加引用. jar
文件位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Java
。
对于这个项目,还需要以下引用:
gson.jar
leadtools.jar
leadtools.caching.jar
leadtools.codecs.jar
leadtools.document.jar
leadtools.document.writer.jar
leadtools.document.pdf.jar
leadtools.ocr.jar
leadtools.pdf.jar
leadtools.svg.jar
对于一个完整的列表的应用程序所需的JAR文件,请参考文件包含在Java应用程序中。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。详情,包括教程为不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS本地引用和设置许可中会详细介绍添加引用和设置一个许可证教程。
与项目创建、添加引用,许可,可以开始编码。
打开_Main.java
类的Project Explorer。添加以下语句的进口
块顶部。
进口com.google.gson。*;
进口java.io.File;
进口java.io.IOException;
进口java.nio.file。*;
进口java.util。*;
进口leadtools。*;
进口leadtools.document。*;
进口leadtools.ocr。*;
在run ()
方法,添加以下设置库路径为C DLL文件所在的地方,以及加载LEADTOOLS库以前进口的。此外,添加两个新的字符串
值表示输入文件和目录的JSON输出。对于本教程,使用PDF在以下文件路径:< INSTALL_DIR > \ LEADTOOLS22 \ \ \ leadtools.pdf图像资源
公共静态无效main (String [] args)抛出IOException {
新_Main () .run (args);
}
私人无效运行(String [] args) {
试一试{
Platform.setLibPath (“C: \ \ LEADTOOLS22 \ \ Bin \ \ CDLL \ \ x64”);
Platform.loadLibrary (LTLibrary.LEADTOOLS);
Platform.loadLibrary (LTLibrary.DOCUMENT);
Platform.loadLibrary (LTLibrary.DOCUMENT_WRITER);
Platform.loadLibrary (LTLibrary.OCR);
SetLicense ();
字符串文件=“C: \ \ LEADTOOLS22 \ \ \ \ \ \图片资源leadtools.pdf”;
字符串outputDirectory =“C: \ \ LEADTOOLS22 \ \资源\ \图片”;
OcrEngine OcrEngine = InitOcrEngine ();
OCRandSaveResults (ocrEngine、文件、outputDirectory);
}
抓(异常交货){
System.err.println (ex.getMessage ());
ex.printStackTrace ();
}
}
添加一个新方法_Main
类InitOcrEngine ()
。在调用此方法run ()
调用以下方法SetLicense ()
的设置方法字符串
值,如上所示。添加以下代码返回初始化OcrEngine
。
OcrEngine InitOcrEngine ()
{
/ /初始化OCR引擎
OcrEngine OcrEngine = OcrEngineManager.createEngine (OcrEngineType.LEAD);
ocrEngine.startup (零,零,零,“C: \ \ LEADTOOLS22 \ \ Bin \ \共同\ \ OcrLEADRuntime”);
返回ocrEngine;
}
添加另一个底部的方法_Main
类OCRandSaveResults (OcrEngine OcrEngine、字符串文件、字符串outputDirectory)
。新创建的方法run ()
方法后OcrEngine OcrEngine = InitOcrEngine ();
行代码,如上所示。
无效OCRandSaveResults (OcrEngine OcrEngine、字符串文件、字符串outputDirectory)抛出IOException
{
LoadDocumentOptions选项=新LoadDocumentOptions ();
options.setFirstPageNumber (1);
options.setLastPageNumber (1);
= DocumentFactory LEADDocument文档。loadFromFile(文件,选项);
document.getText () .setOcrEngine (ocrEngine);
列出< DocumentPageText > documentPageTexts =新ArrayList < DocumentPageText > ();
为(DocumentPage页面:document.getPages ())
{
/ /解析文本和构建DocumentPageText对象
DocumentPageText pageText = page.getText ();
pageText.buildText ();
pageText.buildWords ();
documentPageTexts.add (pageText);
}
/ /获取文件名并创建输出目录
文件fileWithoutExt =新文件(文件。substring (0, file.lastIndexOf (“。”)));
字符串文件名= fileWithoutExt.getName ();
字符串outputDir = PathCombine (outputDirectory文件名+“结果”);
Files.createDirectory (Path.of (outputDir));
/ /保存识别单词JSON
Gson Gson =新Gson ();
var json = gson.toJson (documentPageTexts);
var jsonPath = PathCombine (outputDir文件名+“-words.json”);
Files.write (Path.of (jsonPath) json.getBytes ());
}
接下来,添加一个新方法_Main
类PathCombine(字符串…路径)
。该方法将调用内部的两倍OCRandSaveResults ()
方法,如上所示。添加以下代码来将文件路径和相应的返回字符串
。
公共PathCombine字符串(字符串…路径)
{
文件文件=新文件(路径[0]);
为(inti = 1;我<路径。长度;我+ +){
文件=新文件(文件,路径[我]);
}
返回file.getPath ();
}
按运行项目Ctrl +季,或通过选择- >跑。
如果步骤正确之后,应用程序将OCR给定文档和创建一个JSON文件包含指定输出目录的识别结果。
下载生成的JSON在这里。
本教程展示了如何在一个文档上运行OCR和导出结果JSON。同时,它介绍了如何使用IOcrEngine
接口,以及LEADDocument
,DocumentPage
和DocumentPageText
类。