OpenOffice--Office转PDF

 

 

 

复制代码
import java.io.File;

import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;

public class OpenOfficePDFConverter {
    private static OfficeManager officeManager;
//    private static String OFFICE_HOME = "C:\\Program Files (x86)\\OpenOffice 4";
    private static String OFFICE_HOME = "C:\\Program Files\\LibreOffice";
    private static int port[] = { 9989 };
    
    public static void main(String[] args) {
        try{
            startService();
            convert2PDF("C:\\Users\\12614\\Desktop\\test1.docx");
        }catch (Exception e) {
            e.printStackTrace();
        } finally {
            stopService();
        }
    }

    public static void convert2PDF(String inputFile, String pdfFile) {
        OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
        converter.convert(new File(inputFile), new File(pdfFile));
    }

    public static void convert2PDF(String inputFile) {
        convert2PDF(inputFile, inputFile.substring(0, inputFile.lastIndexOf(".")) + ".pdf");
    }

    public static void startService() {
        DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
        try {
            System.out.println("准备启动服务....");
            configuration.setOfficeHome(OFFICE_HOME);
            // 设置OpenOffice.org安装目录
            configuration.setPortNumbers(port);
            // 设置转换端口,默认为8100
            configuration.setTaskExecutionTimeout(1000 * 60 * 5L);
            // 设置任务执行超时为5分钟
            configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);
            // 设置任务队列超时为24小时

            officeManager = configuration.buildOfficeManager();
            officeManager.start();
            // 启动服务
            System.out.println("office转换服务启动成功!");
        } catch (Exception ce) {
            ce.printStackTrace();
        }
    }
    
    public static void stopService() {
        if (officeManager != null) {
            officeManager.stop();
        }
        System.out.println("关闭office转换成功!");
    }
}
复制代码

 

posted on   疯狂的妞妞  阅读(344)  评论(0编辑  收藏  举报

(评论功能已被禁用)
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示