首页 > 编程语言 >java项目处理OFD文件

java项目处理OFD文件

时间:2024-11-14 16:43:37浏览次数:1  
标签:文件 exporter java OFD ofd Paths get ofdPath Path

一、导入 jar 依赖包
1.1 Maven 项目引入 jar 包

<dependency>
    <groupId>org.ofdrw</groupId>
    <artifactId>ofdrw-converter</artifactId>
    <version>2.0.2</version>
</dependency>

二、实现思路

1、直接解析ofd获取其内容,在此不多述

2、走OCR识别

1)ofd转pdf,pdf再转图片,图片走OCR识别

Path ofdPath = Paths.get("D:/ofd/1.ofd");
Path pdfPath = Paths.get("D:/ofd/target/1.pdf");
try (OFDExporter exporter = new PDFExporterPDFBox(ofdPath, pdfPath)) {
    exporter.export();
} catch (IOException e) {
    e.printStackTrace();
}

结论:出现了下述的重影问题,转PDF效果太差。所以该方案取消

 

2)ofd转图片,图片走OCR识别

Path ofdPath = Paths.get("D:/ofd/1.ofd");
Path imgPath = Paths.get("D:/ofd/img");
try (ImageExporter exporter = new ImageExporter(ofdPath, imgPath, "PNG", 20d)) {
    exporter.export();
} catch (IOException e) {
    e.printStackTrace();
}

结论:测试了多个ofd文件,转换图片效果较好

标签:文件,exporter,java,OFD,ofd,Paths,get,ofdPath,Path
From: https://www.cnblogs.com/mabiao008/p/18546336

相关文章

  • 检测 HTML5\CSS3\JAVASCRIPT 在浏览器的适应情况
    https://www.cnblogs.com/czhyuwj/p/4796690.html CSS3SelectorsTest:这是CSS3.INFO网站提供的css选择器测试页面,它能够详细显示当前浏览器对所有CSS3选择器的支持情况。启动测试,浏览器会自动测验,并已列表的方式显示当前浏览器对所有css3选择器的支持情况  http://tool......
  • Java方法-可变参数
    可变参数JDK1.5开始,Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号(...)。一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。代码:publicstaticvoidmain(String[]args){//调用可变......
  • JAVA开发规范
    前言本规范的目的是提升代码质量,提升团队协作效率,规范中出现的强制,推荐,参考含义如下:【强制】:必须严格遵守,如有特殊情况,需架构委员会评审报备。【推荐】:没特殊情况必须遵守,在开发组长允许下可以不遵守。【参考】:可以参考,不做严格要求。后台开发规范1.1命名规范【强制】驼......
  • Java8 CompletableFuture异步任务
    无返回值调用importjava.util.concurrent.CompletableFuture;publicclassTestDemo{publicstaticvoidmain(String[]args){System.out.println("进入主线程=============");CompletableFuture.runAsync(()->getNum());System.......
  • 使用Java爬虫技术高效获取电商平台店铺商品数据
    在电商领域,商品信息的获取是进行市场分析、竞品监控等工作的基础。本文将介绍如何利用Java爬虫技术,通过API接口高效地获取店铺所有商品的详细信息。我们将使用Java语言,结合HttpClient库和JSON解析库,展示从API请求数据到数据处理的整个过程。理解API接口API(应用程序编程接口)允......
  • 【Python学习笔记】 第9章 元组、文件和其他核心类型
    元组Python元组的属性:任意对象的有序集合通过偏移量存取属于“不可变序列”固定长度、多样性、任意嵌套对象引用的数组元组的常见方法:运算解释()空元组T=(0,)单个元素的元组T=(0,'Ni',1.2,3)四个元素的元组T=0,'Ni',1.2,3还是四个元......
  • 两个新出的 JavaScript 运算符
    在ECMAScript2021(ES12)中,JavaScript引入了新的逻辑赋值操作符&&=和??=。这些操作符将逻辑运算符与赋值运算符相结合,提供了更加简洁、直观的赋值方式。虽然已经进入标准比较久了,但是我在实际开发中见到的还比较少,今天我们一起来学习下。逻辑与赋值操作符&&=&&=的工作原理......
  • Linux 磁盘、分区、文件系统、挂载
    1、磁盘Linux所有设备都被抽象成为一个文件,保存在/dev目录下。设备名称一般为hd[a-z]或sd[a-z]。如果电脑中有多硬盘,则设备名依次为sda、adb、sdc...以此类推IDE设备的名称为hd[a-z]。SATA、SCSI、SAS、USB等设备的名称称为sd[a-z]。 2、分区在Linux中,使用备名称+分区号......
  • Java类的加载
        Java类加载的过程可以细分为四个主要阶段:加载(Loading)、验证(Verification)、准备(Preparation)和初始化(Initialization)。每个阶段都有其特定的任务和目的。1.加载(Loading)    加载是类加载的第一步,它负责将类的二进制数据读入JVM内存,并转换为运行时数据结构。......
  • Java线程的sleep和wait的区别
        在Java中,Thread.sleep()和Object.wait()都可以让线程暂停执行,但是它们的作用机制和使用场景是不同的。下面是这两个方法的主要区别:Thread.sleep(longmillis,intnanos)参数:millis 是毫秒数,nanos 是额外的纳秒数(0到999,999之间)。行为:当前线程将暂停执行至少......