Spring Boot中整合JodConverter实现文件在线预览

Spring Boot中整合JodConverter实现文件在线预览

1.安装LibreOffice 24.2

下载地址
LibreOffice 是一款功能强大的办公软件,默认使用开放文档格式 (OpenDocument Format , ODF), 并支持 *.docx, *.xlsx, *.pptx 等其他格式。
它包含了 Writer, Calc, Impress, Draw, Base 以及 Math 等组件,可用于处理文本文档、电子表格、演示文稿、绘图以及公式编辑。

它可以运行于 Windows, GNU/Linux 以及 macOS 等操作系统上,并具有一致的用户体验。

2.Maven依赖

<!--文件预览-->
        <!--转换工具-->
        <dependency>
            <groupId>org.jodconverter</groupId>
            <artifactId>jodconverter-spring-boot-starter</artifactId>
            <version>4.4.2</version>
        </dependency>
        <dependency>
            <groupId>org.jodconverter</groupId>
            <artifactId>jodconverter-local</artifactId>
            <version>4.4.2</version>
        </dependency>
        <dependency>
            <groupId>org.jodconverter</groupId>
            <artifactId>jodconverter-core</artifactId>
            <version>4.4.2</version>
        </dependency>

3.配置文件

jodconverter:
  local:
    # 是否开启缓存
    enabled: true
    # libreOffice根目录
    officeHome: C:\Program Files\LibreOffice
    # 任务执行的超时时间
    taskExecutionTimeout: 86400000
    # 任务队列的超时时间
    taskQueueTimeout: 86400000
    # 端口(线程)
    portNumbers: [2001,2002,2003]
    # 一个进程的超时时间
    processTimeout: 86400000

4.编写业务Controller

    @Autowired
    private DocumentConverter documentConverter;

    @GetMapping(value = "/onlinePreview")
    public void onlinePreview() {
        File source = new File("D:\\aaa.xls");
        File target = new File("D:\\测试.html");
        try {
            // source:源文件,target:转换后的文件
            // word-->pdf
            // ppt-->pdf
            // excel-->html
            documentConverter.convert(source).to(target).as(DefaultDocumentFormatRegistry.HTML).execute();
        } catch (OfficeException e) {
            e.printStackTrace();
        }
    }

在这里插入图片描述

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Word在线预览,可以使用以下步骤: 1. 首先需要将Word文档转换成HTML格式。可以使用Apache POI库来读取Word文档内容,然后使用JodConverter来将其转换为HTML格式。 2. 在Spring Boot应用创建一个Controller,用于接收Word文档的请求并返回HTML格式的文档内容。 3. 在HTML页面嵌入一个iframe标签,并将其src属性设置为Controller的URL地址。 4. 在Controller,读取HTML格式的文档内容,并将其返回给前端。 下面是一个示例的Controller代码: ``` @RestController public class WordPreviewController { @GetMapping("/preview") public ResponseEntity<String> previewWordDocument() throws IOException { // 读取Word文档内容并转换为HTML格式 InputStream inputStream = new FileInputStream(new File("path/to/word/document")); XWPFDocument document = new XWPFDocument(inputStream); XHTMLOptions options = XHTMLOptions.create(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); XHTMLConverter.getInstance().convert(document, outputStream, options); String htmlContent = new String(outputStream.toByteArray(), Charset.forName("UTF-8")); // 将HTML内容返回给前端 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.TEXT_HTML); return new ResponseEntity<>(htmlContent, headers, HttpStatus.OK); } } ``` 在HTML页面,可以嵌入以下代码来显示Word文档的预览: ``` <iframe src="/preview" width="100%" height="600"></iframe> ``` 这样就可以在浏览器预览Word文档了。需要注意的是,由于Word文档转换为HTML格式可能会比较耗时,因此建议使用异步方式来处理请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值