• Java调用ApacheOpenOffice将Word转PDF


    Java调用ApacheOpenOffice将Word转PDF

    踩坑后补充建议首先进行以下操作

    1、安装X Window System

    yum groupinstall "X Window System"
    
    • 1

    2、安装字体

    yum -y install fontconfig #安装字体库
    
    • 1
    yum -y install ttmkfdir mkfontscale #安装字体索引信息
    
    • 1

    3、上传中文字体

    cd /usr/share/fonts
    
    mkdir zh
    
    • 1
    • 2
    • 3
    • 将windows系统内中文字体拷贝一份上传到服务器。
    cp -r  font/* /usr/share/fonts/zh/
    
    • 1
    mkfontscale
    
    • 1
    mkfontdir
    
    • 1
    fc-cache
    
    • 1
    • 查看安装完成的中文字体
    fc-list :lang=zh
    
    • 1

    在这里插入图片描述

    Linux安装ApacheOpenOffice

    安装

    • 下载地址:http://www.openoffice.org/download/index.html

    1、解压

    tar -zxvf Apache_OpenOffice_4.1.13_Linux_x86-64_install-rpm_zh-CN.tar.gz
    
    • 1

    2、进入rpm安装

     cd zh-CN/RPMS
    
    • 1
    rpm -ivh *.rpm
    
    • 1

    进入到RPMS/desktop-integration文件夹中执行

    rpm -ivh openoffice4.1.13-redhat-menus-4.1.13-9810.noarch.rpm
    
    • 1

    测试

    • 上传jodconverter-2.2.2的zip包
    • 解压完后,上传一个word文档和jar包同级
      在这里插入图片描述
    • 执行转换命令
    java -jar jodconverter-cli-2.2.2.jar up.docx up.pdf
    
    • 1

    在这里插入图片描述
    OpenOffice服务没有启动,启动一下。

    /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
    
    • 1

    报错一:

    no suitable windowing system found, exiting.
    
    • 1

    说是没有什么桌面系统无法启动,然后万千百度后,安装了桌面系统

    yum grouplist #查看可安装组件
    
    • 1
    yum groupinstall "X Window System"
    
    • 1

    报错二:

    error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory.
    
    • 1

    执行安装

    yum install libXext.x86_64
    
    • 1

    安装完成后
    从/usr/lib64中将libXext.so.6拷贝到/opt/openoffoce4/program中

    cp libXext.so.6 /opt/openoffice4/program/
    
    • 1

    然后拷贝完成后赋予权限

    chmod +x libXext.so.6 
    
    • 1

    转换

    • 8100端口已被服务占用
      在这里插入图片描述
    • 执行测试
    java -jar jodconverter-cli-2.2.2.jar demo.docx demo.pdf
    
    • 1

    在这里插入图片描述

    Java转换方法

    public static void word2Pdf(File sourceFile, File pdfFile) throws Exception {
            OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
            try {
                connection.connect();
                DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
                converter.convert(sourceFile, pdfFile);
                connection.disconnect();
                log.info("OpenOffice正在转换文件中.");
            } catch (java.net.ConnectException e) {
                e.printStackTrace();
                log.error("OpenOffice服务未启动.");
                throw e;
            } catch (OpenOfficeException e) {
                e.printStackTrace();
                log.error("读取文件失败.");
                throw e;
            } catch (Exception e) {
                e.printStackTrace();
                log.error("未知异常.");
                throw e;
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    C语言入门
    升级你的MySQL吧,感受下8.0.30 or Higher新特性
    【HTML】HTML基础6.2(表格之合并单元格)
    MySQL 并行复制方案演进历史及原理分析
    这项镜头贴膜技术背后,藏着让VR变轻巧的秘密
    如何做一个基于JAVA的新闻管理系统毕业设计毕设作品(springboot框架)
    Rasa NLU中的组件
    网络——TCP拥塞控制
    FANUC机器人_通过ROBOGUIDE从零开始做一个离线仿真项目(2)
    「解析」COCO 数据读取与模型结果解析
  • 原文地址:https://blog.csdn.net/qq_24484085/article/details/126708552