解决jodconverter 2.2.1版本不支持docx、xlsx、pptx转换成PDF格式异常

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 解决jodconverter 2.2.1版本不支持docx、xlsx、pptx转换成PDF格式异常

最近在开发Android项目时,需要在应用内部打开Office资源文件。在查询了相关资料后得出了两种思路:


1.在后台统一资源格式,将Office格式转成PDF格式,Android端直接利用PDFView查看资源文件。后端利用 OpenOffice + jodconverter 将Office转为PDF。


2.Android端利用POI解析Office,很不幸POI在Android中无法解析PPT文件,而且Word、Excel解析后排版不美观,解析能力差。


本人采取第一种方案:

搭建好 OpenOffice + jodconverter 后,转换doc(97-2003)时正常,但是转换 docx 时报了以下错误:


java.lang.IllegalArgumentException: unknowndocumentformatforfile: E:\word.docx

查询了相关资料后,发现 jodconverter 2.2.1 版本不支持 docx、xlsx、pptx 转换。Maven 中也没有 2.2.2版本的,折腾了一番后终于找到解决方案,就是重写 jodconverter 中的BasicDocumentFormatRegistry方法

packagecom.artofsolving.jodconverter;
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.List;
/*** CQL* 重写 BasicDocumentFormatRegistry 文档格式*/publicclassBasicDocumentFormatRegistryimplementsDocumentFormatRegistry {
privateList/* <DocumentFormat> */documentFormats=newArrayList();
publicvoidaddDocumentFormat(DocumentFormatdocumentFormat) {
documentFormats.add(documentFormat);
    }
protectedList/* <DocumentFormat> */getDocumentFormats() {
returndocumentFormats;
    }
/*** @param extension*            the file extension* @return the DocumentFormat for this extension, or null if the extension*         is not mapped*/publicDocumentFormatgetFormatByFileExtension(Stringextension) {
if (extension==null) {
returnnull;
        }
//new DefaultDocumentFormatRegistry();//将文件名后缀统一转化if (extension.indexOf("doc") >=0) {
extension="doc";
        }
if (extension.indexOf("ppt") >=0) {
extension="ppt";
        }
if (extension.indexOf("xls") >=0) {
extension="xls";
        }
StringlowerExtension=extension.toLowerCase();
for (Iteratorit=documentFormats.iterator(); it.hasNext();) {
DocumentFormatformat= (DocumentFormat) it.next();
if (format.getFileExtension().equals(lowerExtension)) {
returnformat;
            }
        }
returnnull;
    }
publicDocumentFormatgetFormatByMimeType(StringmimeType) {
for (Iteratorit=documentFormats.iterator(); it.hasNext();) {
DocumentFormatformat= (DocumentFormat) it.next();
if (format.getMimeType().equals(mimeType)) {
returnformat;
            }
        }
returnnull;
    }
}

注意:需要创建一个同名的包

亲测,docx、xlsx、ppts均转换成功!

目录
打赏
0
0
0
0
21
分享
相关文章
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
226 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Vision Parse:开源的 PDF 转 Markdown 工具,结合视觉语言模型和 OCR,识别文本和表格并保持原格式
Vision Parse 是一款开源的 PDF 转 Markdown 工具,基于视觉语言模型,能够智能识别和提取 PDF 中的文本和表格,并保持原有格式和结构。
387 19
Vision Parse:开源的 PDF 转 Markdown 工具,结合视觉语言模型和 OCR,识别文本和表格并保持原格式
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
592 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
3月前
|
.net8 Syncfusion生成pdf/doc/xls/ppt最新版本
通过使用 Syncfusion,您可以高效地生成各种文档,满足不同的业务需求。这些工具不仅易于使用,还具有高性能和高度可扩展性,是处理文档的理想选择。
153 16
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
435 2
安利一款基于canvas/svg的富文本编辑器-支持在线导出PDF、DOCX
高性能:利用Canvas和SVG进行图形和矢量图形的渲染,提供高性能的绘图能力。 可扩展性:Canvas-Editor是一个开源项目,支持通过插件机制扩展编辑器的功能,如DOCX、PDF导出、表格分页等。 丰富的文本编辑功能:支持多种文本编辑操作,如插入表格、分页、性能优化等。
643 0
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
355 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
【全自动改PDF名】批量OCR识别提取PDF自定义指定区域内容保存到 Excel 以及根据PDF文件内容的标题来批量重命名
学校和教育机构常需处理成绩单、报名表等PDF文件。通过OCR技术,可自动提取学生信息并录入Excel,便于统计分析和存档管理。本文介绍使用阿里云服务实现批量OCR识别、内容提取、重命名及导出表格的完整步骤,包括开通相关服务、编写代码、部署函数计算和设置自动化触发器等。提供Python示例代码和详细操作指南,帮助用户高效处理PDF文件。 链接: - 百度网盘:[链接](https://pan.baidu.com/s/1mWsg7mDZq2pZ8xdKzdn5Hg?pwd=8866) - 腾讯网盘:[链接](https://share.weiyun.com/a77jklXK)
104 5
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
179 8

热门文章

最新文章