不开源项目aspose.ocr最新版23.10.0的一些科普

Aspose
placeholder image
admin 发布于:2024-09-27 17:31:25
阅读:loading

前面在摸索了Aspose的Cells、Words、Pdf等多款组件,分别是常见的Word/Excel/Pdf办公软件,闲下心来又继续了解了一下Aspose For Java语言的其他软件,经过一些持续的分析和摸索实践越来越多的将它们给科学化,即所有的软件(组件)均不修改任何jar包依赖,纯粹使用反射的形式来调用,也就是说在API的使用前进行一次特殊的代码注册,即可实现授权,全程不需要License之类的xml,或是文档无水印、或是文档页数限制、或是获取内容无限制,等等。

特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

1.基本介绍

本次实践的是Aspose.ocr的23.10.0版本,它是一个功能强大的用于处理 图像识别 的开发工具包,如果有需要使用Java来操作 识别图像 文件的需求可以了解一下它。本次示例提供了将 PNG图片 文件格式图像文本识别,并另存为其他格式文件的简单示例,更多/更专业的API使用有疑问请自行转至官网查看或学习,示例参考如下几点:

(1)提供了识别PNG图片的示例,从图片中提取文本,并将其转换为:DOCX、PDF、JSON、XLSX等格式的文件;

(2)提供了使用反射调用特定的class代码逻辑,无需修改原始的jar;

(3)科学使用的版本有23.10.0,不科学的使用只会输出一小部分的文本,且会增加水印文本;

(4)需要注意这个示例需要JDK 64位的,因为使用到了`onnxruntime`库,内置了各种操作系统的动态链接库,如dll、so等,对于Windows系统的只有64位dll,所以需要JDK 64位;

2.示例代码

public class AsposeOcrReflectTest extends cn.chendd.cells.base.BaseTest {

    @Test
    public void test1() throws Exception {

        /*注册 23.10*/
        RegisterOcr.registerOcr23100();

        AsposeOCR ocr = new AsposeOCR();
        OcrInput input = new OcrInput(InputType.SingleImage);
        input.add(getClass().getResource("/Chi.png").getPath());
        RecognitionSettings settings = new RecognitionSettings();
        settings.setLanguage(Language.Eng);
        settings.setLanguage(Language.Chi);
        PreprocessingFilter filter = new PreprocessingFilter();
        filter.add(PreprocessingFilter.AutoSkew());
        settings.setPreprocessingFilters(filter);
        settings.setLinesFiltration(true);

        final ArrayList<RecognitionResult> list = ocr.Recognize(input, settings);
        AsposeOCR.SaveMultipageDocument(super.getRootFile("aspose.ocr/Chi.pdf") , Format.PdfNoImg , list);
        AsposeOCR.SaveMultipageDocument(super.getRootFile("aspose.ocr/Chi.docx") , Format.Docx , list);
        AsposeOCR.SaveMultipageDocument(super.getRootFile("aspose.ocr/Chi.xlsx") , Format.Xlsx , list);
        AsposeOCR.SaveMultipageDocument(super.getRootFile("aspose.ocr/Chi.json") , Format.Json , list);

        for (RecognitionResult result : list) {
            System.out.println(result.recognitionText + "---" + result.GetJson());
        }
    }

    @Test
    public void test2() throws Exception {

        /*注册 23.10*/
        RegisterOcr.registerOcr23100();

        AsposeOCR ocr = new AsposeOCR();
        OcrInput input = new OcrInput(InputType.SingleImage);
        input.add(getClass().getResource("/Http.png").getPath());
        RecognitionSettings settings = new RecognitionSettings();
        settings.setLanguage(Language.Eng);
        settings.setLanguage(Language.Chi);
        PreprocessingFilter filter = new PreprocessingFilter();
        filter.add(PreprocessingFilter.AutoSkew());
        settings.setPreprocessingFilters(filter);
        settings.setLinesFiltration(true);

        final ArrayList<RecognitionResult> list = ocr.Recognize(input, settings);
        AsposeOCR.SaveMultipageDocument(super.getRootFile("aspose.ocr/Http.pdf") , Format.PdfNoImg , list);
        AsposeOCR.SaveMultipageDocument(super.getRootFile("aspose.ocr/Http.docx") , Format.Docx , list);
        AsposeOCR.SaveMultipageDocument(super.getRootFile("aspose.ocr/Http.xlsx") , Format.Xlsx , list);
        AsposeOCR.SaveMultipageDocument(super.getRootFile("aspose.ocr/Http.json") , Format.Json , list);

        for (RecognitionResult result : list) {
            System.out.println(result.recognitionText + "---" + result.GetJson());
        }
    }

}

3.运行示例

image.png

(源文件Chi.png)

image.png

(识别的结果)

image.png

(源文件Http.png)

image.png

(识别的结果)

4.其它说明

(1)`aspose.xxx`不是开源免费的使用,Github上有示例项目,包含了大量的示例,示例的结果就是生成了一些《Evaluation Warning》警告、水印、内容页数限制、内容文本限制等;

(2)aspose旗下有许多的产品,都是商业付费版本,常见于各种文档格式文件的操作,都需要商业授权使用,也基本都是支持多种编程语言的,如有Java、C++、.NET等等,官网也有多种在线示例;

(3)示例与相关文件下载:《源码下载与示例.zip》,注:下载并不包含具体的科学实现部分,只是源文件与示例输出文件;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区