java word转pdf三种方法(附有需要的jar)

一.jacob
1.jar下载
jacob.jar和jacob-1.17-x64.dll下载
提取码:0121
2.在jdk/bin目录下引入.dll文件(64位:jacob-1.17-x64.dll 32位:jacob-1.17-x86.dll)
3.转换代码

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import java.io.File;
 
 
public class Word2Pdf {
   
    public static void main(String args[]) {
   
        ActiveXComponent app = null;
        String wordFile = "e:/测试word.docx";
        String pdfFile = "e:/测试pdf.pdf";
        System.out.println("开始转换...");
        // 开始时间
        long start = System.currentTimeMillis();
        try {
   
            // 打开word
            app = new ActiveXComponent("Word.Application");
            // 设置word不可见,很多博客下面这里都写了这一句话,其实是没有必要的,因为默认就是不可见的,如果设置可见就是会打开一个word文档,对于转化为pdf明显是没有必要的
            //app.setProperty("Visible", false);
            // 获得word中所有打开的文档
            Dispatch documents = app.getProperty("Documents").toDispatch();
            System.out.println("打开文件: " + wordFile);
            // 打开文档
            Dispatch document = Dispatch.call(documents, "Open", wordFile, false, true).toDispatch();
            // 如果文件存在的话,不会覆盖,会直接报错,所以我们需要判断文件是否存在
            File target = new File(pdfFile);
            if (target.exists()) {
   
                target.delete();
            }
            System.out.println("另存为: " + pdfFile);
            // 另存为,将文档报错为pdf,其中word保存为pdf的格式宏的值是17
            Dispatch.call(document, "SaveAs", pdfFile, 17);
            // 关闭文档
            Dispatch.call(document, "Close", false);
            // 结束时间
            long end = System.currentTimeMillis();
            System.out.println("转换成功,用时:" + (end - start) + "ms");
        }catch(Exception e) {
   
            e.getMessage();
            System.out.println("转换失败"+e.getMessage());
        }finally {
   
            // 关闭office
            app.invoke("Quit", 0);
        }
    }
 
 
} 

注:jacb只能在windows系统使用,linux系统暂时无法解决(windows电脑安装wps office,并且设置wps office为默认启动 。(最好不要使用microsoft word 微软的需要激活,很麻烦,还不成功!)

2.docx4j
1.pom

		<dependency>
            <groupId>org.docx4j</groupId>
            <artifactId>docx4j</artifactId>
            <version>6.0.1</version>
        </dependency>

        <!-- 转出pdf需要 -->
        <dependency>
            <groupId>org.docx4j</groupId>
            <artifactId>docx4j-export-fo</artifactId>
            <version>6.1.0</version>
        </dependency>

2.代码

/*
* inPath word路径   outPath pdf路径
*/
public static void doc3pdf(String inPath, String outPath) {
   
        try {
   
            WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File(inPath));
            Mapper fontMapper = new IdentityPlusMapper();
            PhysicalFont font  = PhysicalFonts.getPhysicalFonts().get("Comic Sans MS");
            fontMapper.put("Calibri", font);
            wordMLPackage.setFontMapper(fontMapper);

            OutputStream os = new java.io.FileOutputStream(outPath);
            FOSettings foSettings = Docx4J.createFOSettings();
            foSettings.setWmlPackage(wordMLPackage);

            Docx4J.toFO(foSettings, os, Docx4J
  • 13
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
### 回答1: 《Java编程思想》是一本经典的Java编程入门书籍,是每位Java程序员必读的宝典。该书由Bruce Eckel编写,通过清晰、简洁的语言和丰富的示例代码,系统地介绍了Java编程的基本概念、语法和最佳实践。 本书分为两部分,第一部分主要介绍了Java编程的基础知识,包括面向对象的理念、类与对象、继承和多态、接口与内部类、异常处理以及Java集合等内容。这些基础知识是学习Java编程的必备基础,通过深入浅出的方式,读者可以逐步掌握Java的核心概念和编程技巧。 第二部分则更加深入和高级,讨论了Java编程的一些高级主题,例如并发编程、图形用户界面、网络编程和数据库访问等。这些内容对于有一定Java开发经验的程序员来说非常有价值,可以帮助他们进一步提升自己的编程能力。 《Java编程思想》具有很强的实践性和指导性,书中的示例代码通俗易懂,附有详细的解释和说明,读者可以通过实际操作来巩固所学知识。此外,本书还对一些常见的编程问题进行了分析和解答,对读者更好地理解和掌握Java编程提供了帮助。 总之,《Java编程思想》是一本非常经典的Java入门书籍,它广泛被广大Java程序员所推崇和使用。无论是初学者还是有经验的 Java开发人员,都能从这本书中获取到丰富的知识和编程经验,提升自己的编程技能。 ### 回答2: 《Java编程思想》是一本经典的Java编程指南和教程,由美国计算机科学家Bruce Eckel所著。本书全面而深入地介绍了Java编程的基本理念和原则,适合初学者和有一定基础的程序员阅读。 这本书从面向对象的观点出发,系统地讲解了Java语言的核心概念和特性,如类、对象、继承、封装、多态等。同时,书中还涉及了Java关键字、基本数据类型、运算符、流程控制语句等基础知识的讲解。 除了基础的语法知识,本书还着重介绍了Java程序设计的思想和方法。作者通过丰富的示例和具体的案例分析,展示了面向对象编程的优势和实践,如封装、继承、多态的应用,以及设计模式、异常处理等高级编程技巧。 《Java编程思想》的另一个亮点是其对Java标准库的深入讲解。书中详细介绍了Java中常用的类和接口,包括集合框架、IO操作、线程、网络编程等。这对于初学者来说十分有用,可以帮助读者更好地理解和运用Java的核心API。 总的说来,这本书系统而全面地介绍了Java编程的基本概念、语法特性和设计思想,适合初学者和有一定基础的程序员阅读。通过阅读本书,读者可以掌握Java编程的基础知识,并培养面向对象的编程思维。同时,本书也适合作为Java程序员的参考手册,帮助解决实际开发中遇到的问题。 ### 回答3: 《Java编程思想》是美国计算机科学家Bruce Eckel所著的一本经典教材,对Java编程语言进行了深入浅出的讲解。这本书全面系统地介绍了Java的基本概念、语法规则以及面向对象编程的思想和技巧,适合初学者和有一定基础的开发者阅读。 《Java编程思想》以通俗易懂的方式,循序渐进地讲解了Java的核心概念,包括类、对象、继承、多态等。通过大量的示例代码和实际案例,读者可以深入理解面向对象的编程思想,掌握Java的核心特性和用法。 这本书的特点之一是注重实践,通过大量的实例帮助读者巩固所学知识,并引导读者自己进行实践和探索。书中涵盖了众多经典的Java编程问题和解决方案,深入讲解了Java的各个方面,包括异常处理、并发编程、IO操作、网络编程等。 《Java编程思想》还介绍了一些高级主题,如泛型、反射、注解等,帮助读者掌握更高级的Java编程技巧和知识点。此外,书中还介绍了一些常用的Java开发工具和框架,如Eclipse、Maven等,让读者了解如何高效地进行Java开发。 总之,《Java编程思想》是一本权威且深入浅出的Java编程教材,适合初学者入门和有经验的开发者进一步提升编程水平。这本书重在培养读者全面的编程思维和解决问题的能力,是Java开发者必备的一本经典之作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值