学习Spire.OCR 1.9.22版本的科学实践(七)
Spire Office
admin 发布于:2025-04-26 17:57:11
阅读:loading
Spire是e-iceblue公司的一个产品系列,专注于高效、功能丰富的文档处理解决方案。e-iceblue成立于2009年,致力于为开发者提供简单易用的文档处理工具,以满足各种业务需求。Spire 产品广泛应用于企业办公、教育、金融等多个行业。e-iceblue旗下有多个产品系列,也支持多种编程语言,如:NET、C++、Java、Python、JavaScript、Android等,本次以Spire.Office for Java支持的产品种类为例,经过一些时间的分析与摸索,实现它的组件应用的无水印和页数限制,以时下最新的版本为例摸索出它的科学实现分享。特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)。
Spire.OCR for Java 是一款专业的用于文字识别的 Java OCR(图文识别)组件,用以读取 JPG、PNG、GIF、BMP 和 TIFF 等图片格式中的文本。利用该组件,开发人员可以在 Java 应用程序中实现 OCR 功能。
Spire.OCR for Java 操作简单易用,仅需一小串 Java 代码,便可轻松读取 JPG、PNG、GIF、BMP 和 TIFF 等常用图片中的文本信息。
此外,Spire.OCR for Java 功能非常强大, 支持识别各种常用印刷字体,如 宋体、仿宋、黑体、微软雅黑、Arial, Times New Roman, Courier New, Verdana, Tahoma 、Calibri 等;支持识别粗体、斜体、简体、繁体等字体样式;支持扫描全图,并且能识别多种语言文字,如英语,中文,法语,德语,日语及韩语等。
(1)支持常用图片格式
JPG、PNG、BMP、GIF、TIFF。
(2)支持多种语言文字
英语、中文、日语、韩语、德语、法语。
(3)支持常用文字字体
宋体、仿宋、黑体、微软雅黑、Verdana、Tahoma、Arial、Times New Roman、Courier New、Calibri。
(4)支持多种字体样式
标准、粗体、斜体、简体、繁体。
(5)平台
Spire.OCR for Java 可以轻松地集成到 Java 应用程序中。支持 Windows 和 Linux 平台,J2SE、J2EE。
基于Spire.OCR实现一个简单的图片内容识别示例,在我看来就足够了,至于它的更多/更强大/更专业的API及高级用法我就不摸索了,本次基于“spire.ocr-1.9.22.jar”版本,仅对它的识别内容中是否完整和是否有警告提醒摸索实践,参考如下代码:
public class HelloWorldOcr {
public static void main(String[] args) throws Exception {
OcrScanner ocr = new OcrScanner();
ocr.setDependencies("dependencies/");
ocr.scan(HelloWorldOcr.class.getResource("/Hello.png").getFile());
final IOCRText text = ocr.getText();
System.out.println(text);
}
}
【示例说明】
(1)示例中读取了PNG格式的图片,内容摘自《Java开发手册》的前言页;
(2)读取的PNG格式可以成功,但是读取JPG格式的报错了;
(3)该图片中包含了中文、英文、数字、特殊符号等多种规则的文本;
(源图片)
(控制台输出)
前言
《Java开发手册》是Java社区爱好者的集体智慧结晶和经验总结,经历了多次大规模一线
实战的检验及不断完善,整理成册后,众多社区开发者确跃参与打磨完善,系统化地整理成册,当
前的最新版本是黄山版。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是
编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:五花八门的错误码会人为
地增加排查问题的难度;数据库的表结构和索引设计缺陷带来的系统架构缺陷或性能风险;工程结
构混乱导致后续项目维护跟难;没有鉴权的漏洞代码容易被黑客攻击等。所以本手册以Java开发
者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、
设计规约七个维度,再根据内容特征,细分成若干二级子目录。此外,依据约束力强弱及故障敏感
性,规约依次分为【强制】、【推荐】、【参考】三大类。在延伸的信息中,“说明”对规约做了适
当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要提防的雷区,以及真实
的错误案例
手册的愿景是码出高效,码出质量。现代软件架构的复杂性需要协同开发完成,如何高效地
协同呢?无规矩不成方圆,无规范难以协同,比如,制定交通法规表面上是要限制行车权,实际上
是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶?对软件来说,适当的
规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一
方式一起做事,提升协作效率,降低沟通成本。代码的字里行间流消的是软件系统的血液,代码质
量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量
2017年杭州云栖大会上发布了配套的Java开发规约IDE插件,下载量已达到275万人次,
阿里云效也集成了代码规约扫描引擎。2018年9月在云栖厅发布36万字的配套详解图书《码出高
效》,秉持“图胜于表,表胜于言”的理念,深入浅出地将计算机基础、面向对象思想、数据结构
与集合、JVM探源与内存分析、并发与多线程、单元测试等知识丰富立体地呈现出来。本书紧扣学
以致用、学以精进的目标,结合一线开发的实践经验和故障案例,与底层源码解析融会贯通,据娟
道来。
《码出高效》和《Java开发手册(第2版)》稿费所得收入均捐赠公益事情,希望用技术
情怀帮助到更多的人。
(识别结果)
(1)Spire.Office不是开源免费的使用,Github上有示例项目,包含了大量的示例,示例的结果就是生成了一些《Evaluation Warning》警告、水印、内容页数限制、内容文本限制等;
(2)Spire.Office公司旗下有许多编程语言支持的多种Office文档产品,都是商业付费版本,常见于各种文档格式文件的操作,都需要商业授权使用官网也有更多更详细的说明;
(3)科学实现将是改动jar中class的方式,有必要说的是这个jar文件中并未使用RSA/SF的文件class加密,也可以可以不用改动jar文件的,只需要将改动的class文件单独放置在一个jar文件中,运行是使用java -cp或jar -jar命令时优先加载改动的class,最后加载原始jar中class的形式即可实现不改动jar文件;
(4)Spire.Office下辖的各个产品组件为独立存在的各个产品,Office是提取全集产品中的汇总,囊括了全部产品组件的范围,对内提供统一的版本管理,对外提供一个产品范围体系;
(5)Spire的官网有提供Free Spire.Office for Java免费版本,免费版有篇幅限制,除了文档篇幅限制外,没有任何警告信息,但官方仅对免费版进行不定期维护,不提供技术服务或其他支持服务;
(6)本次学习摸索的目的是基于专业版进行的专业实践,实践的结果就是无水印,无内容页数限制;
(7)特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权);
(8)示例与相关文件下载:《Spire.OCR示例相关下载.zip》,注:下载并不包含具体的科学实现部分,只是源文件与示例输出文件;
(9)本次计划实践“spire.ocr-1.9.22.jar”版本,但是示例的运行需要使用对应操作系统平台的动态链接库,比如Windows需要附带下载一些dll库,找了一圈并未找到这个版本对应的版本,所以导致我导入这个版本的jar一直运行报错,后来切换到了“spire.ocr-1.9.0.jar”的版本进行实践,上述结果的输出也是基于这个版本的;
点赞