kkFiewView代码分析(九)——office插件相关
发布日期:2022-03-08 21:50:39 浏览次数:3 分类:技术文章

本文共 2518 字,大约阅读时间需要 8 分钟。

2021SC@SDUSC

 

目录


         上一篇介绍了officePluginManager对office组件的管理,这一篇继续介绍项目中另外一个类OfficePluginExtendFormatRegistry,原作者对该类的描述重写DefaultDocumentFormatRegistry类的原因是因为要添加一些自定义行为,比如字符编码等。

        该类的主要方法都依靠jodconverter提供的接口实现,jodconverter是一种Java OpenDocument转换器,能够转换不同格式的文档,它依赖于Apachea OpenOffice或 LibreOffice ,它为OpenDocument和Microsoft Office提供了最好的免费导入/导出的过滤器。它自动支持OpenOffice和LibreOffice提供的所有转换。jodconverter的应用很广泛,在本个项目中,它作为一个Java类库,嵌入到整体应用程序提供服务。

        整个类只有一个初始化方法,public OfficePluginExtendFormatRegistry() {},类中为24种不同的文件格式设置了不同的存储参数,以pdf为例就设计了四种不同的storeProperties。接下来以pdf文件形式、html文件形式和txt形式为例分析一些详细的方法。

pdf文件形式设置

针对pdf设置了四次存储属性,分别是TEXT、SPREADSHEET、PRESENTATION、DRAWING。

DocumentFormat pdf = new DocumentFormat("Portable Document Format", "pdf", "application/pdf");        pdf.setStoreProperties(DocumentFamily.TEXT, Collections.singletonMap("FilterName", "writer_pdf_Export"));        pdf.setStoreProperties(DocumentFamily.SPREADSHEET, Collections.singletonMap("FilterName", "calc_pdf_Export"));        pdf.setStoreProperties(DocumentFamily.PRESENTATION, Collections.singletonMap("FilterName", "impress_pdf_Export"));        pdf.setStoreProperties(DocumentFamily.DRAWING, Collections.singletonMap("FilterName", "draw_pdf_Export"));        addFormat(pdf);

html文件形式设置

针对html文件设置了三次存储属性,分别是TEXT、SPREADSHEET和PRESENTATION、

DocumentFormat html = new DocumentFormat("HTML", "html", "text/html");        html.setInputFamily(DocumentFamily.TEXT);        html.setStoreProperties(DocumentFamily.TEXT, Collections.singletonMap("FilterName", "HTML (StarWriter)"));        Map
htmlLoadAndStoreProperties = new LinkedHashMap<>(); htmlLoadAndStoreProperties.put("FilterName", "HTML (StarCalc)"); htmlLoadAndStoreProperties.put("FilterOptions", "utf8"); html.setStoreProperties(DocumentFamily.SPREADSHEET, htmlLoadAndStoreProperties); html.setStoreProperties(DocumentFamily.PRESENTATION, Collections.singletonMap("FilterName", "impress_html_Export")); addFormat(html);

txt文件形式设置

FilterOptions,设置为utf8。这里的意思应该是只对UTF-8格式的文本文件进行转换。

DocumentFormat txt = new DocumentFormat("Plain Text", "txt", "text/plain");        txt.setInputFamily(DocumentFamily.TEXT);        Map
txtLoadAndStoreProperties = new LinkedHashMap<>(); txtLoadAndStoreProperties.put("FilterName", "Text (encoded)"); txtLoadAndStoreProperties.put("FilterOptions", "utf8"); txt.setLoadProperties(txtLoadAndStoreProperties); txt.setStoreProperties(DocumentFamily.TEXT, txtLoadAndStoreProperties); addFormat(txt);

转载地址:https://blog.csdn.net/m0_55503427/article/details/121846302 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:kkFileView代码分析(七)——FileUtils
下一篇:kkFiewView代码分析(八)

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月25日 18时56分13秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

android studio 刷新工程,带有build.gradle更改的Android Studio刷新项目 2021-06-24
android 自动部署,Jenkins自动化部署工具的使用(Android项目) 2021-06-24
网页菜单设计html5,点靓网页的10种导航菜单设计 2021-06-24
python用什么存取数据失败_Python使用pickle模块存储数据报错解决示例代码 2021-06-24
麦克风声源定位原理_关于基于麦克风阵列的声源被动定位系统的设计 2021-06-24
log4j 按天打印到文件夹_log4j日志输出到web项目指定文件夹 2021-06-24
华为电脑和手机一碰传_体验华为“一碰传”高科技,实现手机和电脑互传文件... 2021-06-24
apk逆向思路_某apk算法逆向分析过程之旅 2021-06-24
vue实现鼠标放上去就有提示_Vue 根据鼠标悬停目标元素上方显示、隐藏指定元素交互实现... 2021-06-24
java文件的回收站有必要吗_回收站删除的文件如何恢复? 2021-06-24
$http如何在向后台传递文件的同时传递参数_.NetCore3.0+Angular1.x+Epplus文件上传,下载... 2021-06-24
kafka 的pom文件_Flink 1.10 SQL 读写Kafka 2021-06-24
企业标准化产线建设_监理企业诚信建设和标准化服务经验交流会在郑州顺利召开... 2021-06-24
bsp工程师和驱动工程师_“优能工程师”告诉你电动汽车驱动系统有哪些 2021-06-24
git 移除远端文件_git 仓库创建/同步/推送 等常用命令 2021-06-24
idea jar包引用失败_在IDEA中将SpringBoot项目打包成jar包的方法 2021-06-24
红外对管应用电路_传感器系列8:红外线传感器及应用电路 2021-06-24
notes邮件正文显示不全_Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码... 2021-06-24
电子围栏判断_电子围栏系统施工与维护方法「可用于投标方案」 2021-06-24
转换为正整数_欧拉对巴塞尔问题的解决方法:正整数平方的倒数和是多少? 2021-06-24