office办公文档doc、docx、xls、xlsx、ppt、pptx在线预览解决方案三,实现预览

Java调用openOffice处理文档实现预览

maven依赖

<dependency>
            <groupId>com.artofsolving</groupId>
            <artifactId>jodconverter</artifactId>
            <version>2.2.2</version>
        </dependency>

注意:maven仓库只有2.2.1版本,改版本不能转换docx xlsx pptx格式,网上有解决方案重写xx方法,不一定奏效,直接使用2.2.2,其他依赖包已经准备好,

java主要代码段 其他一放到压缩包

package org.yxt.utils;

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.net.ConnectException;

/**
 * openOffice工具
 *
 * @author Yang douya
 * @date 2020/10/14 17:35
 */
@Slf4j
public class OpenOfficeUtil {

    /**
     * 将Office文档转换为PDF. 运行该函数需要用到OpenOffice, OpenOffice下载地址为>
     * 方法示例:
     * String sourcePath = "F:\\office\\source.doc";
     * String destFile = "F:\\office\\dest.pdf";
     *
     * @param sourceFile 源文件 绝对路径 包括.doc, .docx, .xls, .xlsx, .ppt, .pptx
     * @param destFile   目标文件 绝对路径
     * @return 则表示操作成功 0-转换异常 2-文件不存在
     */
    public static int office2Pdf(String sourceFile, String destFile) {
        int resCode = 1;
        OpenOfficeConnection connection = null;
        try {
            File inputFile = new File(sourceFile);
            if (!inputFile.exists()) {
                // 找不到源文件, 则返回 2
                resCode = 2;
            } else {
                // 如果目标路径不存在, 则新建该路径
                File outputFile = new File(destFile);
                if (!outputFile.getParentFile().exists()) {
                    outputFile.getParentFile().mkdirs();
                }
                // 执行连接openOffice服务
                connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
                connection.connect();
                DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection);
                converter.convert(inputFile, outputFile);
                connection.disconnect();
            }
        } catch (ConnectException e) {
            // 转换异常
            resCode = 0;
            log.error("openOffice service ConnectException {}", e);
        } finally {
            try {
                if (null != connection) {
                    connection.disconnect();
                    // 彻底释放连接
                    connection = null;
                }
            } catch (Exception e) {
            }
        }
        return resCode;
    }
}

项目目录结构
在这里插入图片描述
该项目设计为只为预览服务器,其他业务不管,所以预览只需要提供可访问的office文件的URL即可。但是为了防止其他人员能直接拿到office文件,对office文件的URL进行过DES加密操作。

在这里插入图片描述
执行预览
在这里插入图片描述

工程代码: 点击下载
jodconverter-2.2.2-所有依赖jar: 点击下载

工程代码按照需求自行拓展

不想搭建系统也可以,直接将连接转发到我的应用中实现预览也可以,留言即可

移动到该系列其他文章
office办公文档doc、docx、xls、xlsx、ppt、pptx在线预览解决方案一,背景==>
office办公文档doc、docx、xls、xlsx、ppt、pptx在线预览解决方案二,openOffice详细安装==>
office办公文档doc、docx、xls、xlsx、ppt、pptx在线预览解决方案三,实现预览==>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Office套件在线创建和编辑docXLSPPT文件OfficeWork是一个办公在线套件,提供文档编辑器,演示文稿编辑器和电子表格编辑器,您可以使用格式DOCXDOCXLSXXLSPPTX等格式执行编辑操作,例如任何桌面编辑器中的文档,excel电子表格和powerpoint幻灯片, CSV,ODT或HTML文件。 其主要特点是: - OwnCloud应用程序与OnlyOffice社区版集成,它提供所有功能。 - 创建新文档或打开现有文档 - 创建新演示文稿或打开现有演示文稿 - 创建一个新的电子表格或打开一个现有的电子表格 - 支持多种文件格式: * DOC,用Microsoft Word创建的文字处理文件文件名扩展名 * DOCXOffice Open XML Zipped,由Microsoft开发的基于XML的文件格式,用于表示电子表格,图表,演示文稿和文字处理文档 * ODT,OpenDocument的Word处理文件格式,电子文档的开放标准 * RTF,RTF格式由Microsoft开发的文档文件格式用于跨平台文档交换 * TXT,文件文件扩展名通常包含很少的格式 * PPTX,Office Open XML Presentation Zipped,由Microsoft开发的基于XML的文件格式,用于表示电子表格,图表,演示文稿和文字处理文档 * PPT,Microsoft PowerPoint使用的文件格式 * ODP,OpenDocument Presentation文件格式,表示由Impress应用程序创建的演示文稿,该应用程序是基于OpenOffice办公套件的一部分 * XLS由Microsoft Excel创建的电子表格文件文件扩展名 * XLSX Microsoft Office Excel 2007(或更高版本)中编写的电子表格文件的默认文件扩展名 * ODS OpenOffice和StarSuite套件使用的电子表格文件的扩展名,电子表格的开放标准 * CSV逗号分隔值用于以纯文本形式存储表格数据(数字和文本)的文件格式 - 页面格式化 - 改变配色方案 - 复制/粘贴文本段落,撤消/重做您的操作 - 插入分节符 - 插入页眉和页脚 - 插入页码 - 插入脚注 - 显示/隐藏非打印字符 - 设置幻灯片参数 - 应用幻灯片切换 - 预览您的演示文稿 - 将文本与段落对齐 - 选择段落的背景颜色 - 更改段落缩进 - 设置段落行间距 - 插入分页符 - 添加边框 - 设置制表位 - 创建列表 - 应用格式预设 - 设置字体类型,大小和颜色 - 应用字体装饰样式 - 复制/清除文本格式 - 添加超链接 - 单元格文本格式 - 设置字体类型,大小,样式和颜色 - 添加超链接 - 单元格格式 - 编辑单元格属性 - 添加边框 - 对齐单元格中的数据 - 合并单元格 - 更改数字格式 - 插入或删除单元格,行和列 - 排序和过滤数据 - 插入功能 - 插入表 - 插入图像 - 插入图表 - 插入文本对象 - 填充对象并选择颜色 - 操纵幻灯片上的对象 - 对齐并排列幻灯片上的对象 - 合并数学方程 - 插入方程 - 文件共同编辑 - 协作文件编辑 - 保存/下载/打印您的文档,演示文稿,电子表格 - 搜索和替换功能 - 拼写检查 支持语言:Deutsch,English,Français,Nederlands,Türkçe,español,español (Latinoamérica),italiano,polski,português (Brasil),português (Portugal),русский,українська,हिन्दी,‫العربية,中文 (简体),日本語,한국어
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值