Java将OFD文件转PDF文件

这篇具有很好参考价值的文章主要介绍了Java将OFD文件转PDF文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OFDRW 提供了将 OFD 文档导出为其他格式文档的能力,如导出为 PDF、图片、SVG、TXT、HTML 等。

OFDRW 转换模块在 2.0.0 之后抽象了多种文档导出接口,使用统一的 API 实现 OFD 文档导出功能。

如果你使用的是 2.0.0 以前版本,可参考 OFD 文件转换工具类(2.0.0版本之前)

注意: java >= 1.8

一、导入 jar 依赖包

1.1 Maven 项目引入 jar 包
<dependency>
    <groupId>org.ofdrw</groupId>
    <artifactId>ofdrw-converter</artifactId>
    <version>2.0.2</version>
</dependency>
1.2 非 Maven 项目直接下载导入 jar 包

点击下载:ofdrw-converter-2.0.2.jar

二、OFD 转 PDF

OFD 文档导出为 PDF 文件,该导出根据实现所使用的库不一致具有两种导出实现。

注意事项:

  • 导出无法保证文档效果一致性。
2.1基于 PDFBox 实现

实现类:org.ofdrw.converter.export.PDFExporterPDFBox

Path ofdPath = Paths.get("D:/ofd/daima.ofd");
Path pdfPath = Paths.get("D:/ofd/target/daima1.pdf");
try (OFDExporter exporter = new PDFExporterPDFBox(ofdPath, pdfPath)) {
    exporter.export();
} catch (IOException e) {
    e.printStackTrace();
}
2.2基于 iText 实现

实现类:org.ofdrw.converter.export.PDFExporterIText

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

三、OFD 转图片

OFD 文档导出为图片,图片格式支持 PNG、BPM、JPG。

实现类:org.ofdrw.converter.export.ImageExporter

注意事项:

  • 可以通过构造器指定导出的图片类型,目前支持 PNG、JPG、BPM,默认为 PNG 格式。
  • 可以通过构造器或方法设置导出图片的质量,也就是 ppm 参数,默认 ppm 为15。
  • 导出图片将存放于同一个目录,在该目录中图片以的页面索引作为文件名,如第1页的文件名为0.png。

示例:

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

四、OFD 转 SVG 图形

OFD 文档导出为 SVG 图形,文本中的所有文字都将转换为矢量路径。

实现类:org.ofdrw.converter.export.SVGExporter

注意事项:

  • 可以通过构造器或方法设置导出 SVG 图形大小,也就是 ppm 参数,默认 ppm 为15。
  • 导出 SVG 图形文件将存放于同一个目录,在该目录中以页面索引作为文件名,如第1页的文件名为0.svg。

示例:

Path ofdPath = Paths.get("D:/ofd/daima.ofd");
Path svgPath = Paths.get("D:/ofd/target");
try (SVGExporter exporter = new SVGExporter(ofdPath, svgPath, 15d)) {
    exporter.export();
} catch (IOException e) {
    e.printStackTrace();
}

五、OFD 转 HTML 网页

OFD 文档导出为 HTML 网页,需要浏览器支持 HTML5 才可正常预览,由于是基于 SVG 方案导出的 HTML,因此导出文件可能较大。

实现类:org.ofdrw.converter.export.HTMLExporter

注意事项:

  • 若您需要调整 HTML 网页样式,可以通过继承 HTMLExporter 并覆盖 header、booter、margin_bottom 属性,使用自定义的 HTML 样式。
  • 导出的 HTML 网页需要浏览器支持 HTML5 才可正常预览。
    若页面文字内容由文字图元构成且都由 Unicode 组成,那么导出网页可能可以通过鼠标选中与复制。

示例:

Path ofdPath = Paths.get("D:/ofd/daima.ofd");
Path htmlPath = Paths.get("D:/ofd/target/daima.html");
try (HTMLExporter exporter = new HTMLExporter(ofdPath, htmlPath)) {
    exporter.export();
} catch (IOException e) {
    e.printStackTrace();
}

六、OFD 转 TXT 文本

OFD 文档导出为 TXT 文本文件,并非所有 OFD 页面都能导出文本,只有符合特定条件的 OFD 才可导出。

实现类:org.ofdrw.converter.export.TextExporter

注意事项:

  • 部分 OFD 文档由于采用字形索引来定位文字、有个 OFD 整个页面均为路径数据图元而不是文字图元、有的 OFD 页面整个都为图片等诸多原因,无法保证一定能够导出文本。
  • 由于文本布局等各种因素,导出文本顺序也难以与原文文本顺序一致。

示例:

Path ofdPath = Paths.get("D:/ofd/daima.ofd");
Path txtPath = Paths.get("D:/ofd/target/daima.txt");
try (TextExporter exporter = new TextExporter(ofdPath, txtPath)) {
    exporter.export();
} catch (IOException e) {
    e.printStackTrace();
}

大功告成,扫码下方二维码,查阅更多OFD读写库知识~文章来源地址https://www.toymoban.com/news/detail-504548.html


						█▀▀▀▀▀▀▀█████▀▀████▀▀▀▀▀▀▀█
						█ █▀▀▀█ █▄█▄▀█▄   █ █▀▀▀█ █
						█ █   █ █▄ ▄▀█ ▄█▀█ █   █ █
						█ ▀▀▀▀▀ █ ▄▀█ ▄ ▄ █ ▀▀▀▀▀ █
						█▀▀▀▀▀█▀▀▀ ▄▄▄▀ █▄▀█▀█▀█▀██
						█  ▄▄▄▄▀█▀█ ▄▀▀▀▀ ██ ▀▀█ ▀█
						█▀▀▀█  ▀██▀▀█▀▀▀▀█  ▄▀█▀▀ █
						█ █▀▄ ▄▀█▀▄▀▄▀█▀▀▄ ▀ ▀ █ ▀█
						█ █   █▀▄█▄█▄▀▀▀█ ▀   █▀█▄█
						█▀▀▀▀▀▀▀█ ▀▀▄█▀▄▄ █▀█ ▄▀▀▀█
						█ █▀▀▀█ █▀█▀ ▀▀▀  ▀▀▀ ▄▀ ▄█
						█ █   █ █  ▀▄█▀ ██▄▄█▄  ▄ █
						█ ▀▀▀▀▀ █ ▀▄ ▀▀▄▄▄     ▀▀ █
						▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

到了这里,关于Java将OFD文件转PDF文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java POI导出Word、Excel、Pdf文档(可在线预览PDF)

    1、导入依赖Pom.xml        dependency             groupIdorg.apache.poi/groupId             artifactIdpoi/artifactId             version3.14/version         /dependency 2、Controller   3、Service a、pdfService b、wordService c、excelService  4、Utils 5、模板截图   6、前端

    2024年02月08日
    浏览(55)
  • 三种方法将Word文档转换为PDF文件格式

    如何将Word文档转换为PDF文件格式呢?大家在传输文件时,很多人喜欢使用PDF文件格式,因为它非常稳定,不会出现格式混乱的问题。但有些人可能不知道如何进行转换,今天我将介绍三种转换方法,让我们一起来学习一下吧。 方法一:记灵在线工具转换 ① 首先,进入记灵在

    2024年02月09日
    浏览(115)
  • 前端小程序,h5,浏览器,app, doc,.docx,.ofd,.PDF,.WPS以及Office文档的在线解析预览方式

    在线预览是将Word、PPT、Excel、PDF、OFD、音视频等文件在浏览器中解析查看。       我使用的是usdoc,也有用office online进行在线预览,不过注意的是使用usdoc的时候,我们先需要注册和添加预览的地址域名 usdoc的地址:http://www.usdoc.cn 进入用户中心,我们进行注册 注册好之后,先

    2024年02月11日
    浏览(62)
  • 如何通过Java代码将 PDF文档转为 HTML格式

    虽然PDF文件适合用于打印和发布,但不适合所有类型的文档。例如,包含复杂图表和图形的文档可能无法在PDF中呈现得很好。但是HTML文件可以在任何可运行浏览器的计算机上进行阅读并显示。并且HTML还具有占用服务器资源较小,便于搜索引擎收录的特点。那么今天这篇文章就

    2024年02月05日
    浏览(56)
  • JAVA识别PDF和OFD电子发票并解析为java对象

    上一篇我们说了java实现电子发票中的发票税号等信息识别的几种可用方案,最后博主选取了识别文件二维码的方式,而且文章最后也说了,这种有局限性,去到的信息有限,而且针对OFD格式也得继续想办法,那接下来,我们就说一下怎么处理这个问题,并且如何去识别OFD格式

    2024年02月09日
    浏览(40)
  • Java文件:XWPFDocument导出Word文档

    在Java项目开发过程中经常会遇到导出Word文档的业务场景。XWPFDocument是apache基金会提供的用户导出Word文档的工具类。 XWPFDocument:代表一个docx文档 XWPFParagraph:代表文档、表格、标题等各种的段落,由多个XWPFRun组成 XWPFRun:代表具有同样风格的一段文本 XWPFTable:代表一个表格

    2024年01月18日
    浏览(39)
  • Python实现将pdf,docx,xls,doc,wps,zip,xlsx,ofd链接下载并将文件保存到本地

    前言 本文是该专栏的第31篇,后面会持续分享python的各种干货知识,值得关注。 在工作上,尤其是在处理爬虫项目中,会遇到这样的需求。访问某个网页或者在采集某个页面的时候,正文部分含有docx,或pdf,或xls,或doc,或wps,或ofd,或xlsx,或zip等链接。需要你使用python自

    2024年02月17日
    浏览(62)
  • Java将PDF文件转为Word文档

    一、创建Springboot Maven项目 二、导入依赖信息 三、创建Main类 代码如下: 效果展示:

    2024年02月11日
    浏览(52)
  • vue前端预览pdf并加水印、ofd文件,控制打印、下载、另存,vue-pdf的使用方法以及在开发中所踩过的坑合集

    根据公司的实际项目需求,要求实现对pdf和ofd文件的预览,并且需要限制用户是否可以下载、打印、另存pdf、ofd文件,如果该用户可以打印、下载需要控制每个用户的下载次数以及可打印的次数。正常的预览pdf很简单,直接调用浏览器的预览就可以而且功能也比较全,但是一

    2024年02月16日
    浏览(172)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包