java word转pdf,word模板

maven

复制代码
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml</artifactId>
	<version>5.2.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/fr.opensagres.xdocreport/fr.opensagres.xdocreport.converter.docx.xwpf -->
<dependency>
	<groupId>fr.opensagres.xdocreport</groupId>
	<artifactId>fr.opensagres.xdocreport.converter.docx.xwpf</artifactId>
	<version>2.0.4</version>
</dependency>


<dependency>
	<groupId>com.deepoove</groupId>
	<artifactId>poi-tl</artifactId>
	<version>1.12.1</version>
</dependency>

poi-tl语法参考文档

http://deepoove.com/poi-tl/

测试poi-tl

复制代码
import com.deepoove.poi.XWPFTemplate;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestPoiTl {
    public static void main(String[] args) throws Exception {

        List<Map<String,Object>> users = new ArrayList<>();

        users.add(user("张三",10,"zs"));
        users.add(user("李四",20,"ls"));

        XWPFTemplate template = XWPFTemplate.compile("D:\\wordpdf\\template.docx").render(
                new HashMap<String, Object>(){{
                    put("users", users);
                }});
        template.writeAndClose(new FileOutputStream("D:\\wordpdf\\output.docx"));
    }

    static Map<String,Object> user(String name,int age,String account){
        Map<String,Object> user = new HashMap<>();
        user.put("name",name);
        user.put("age",age);
        user.put("account",account);

        return user;
    }

}

测试word转pdf

复制代码
import fr.opensagres.poi.xwpf.converter.pdf.PdfConverter;
import fr.opensagres.poi.xwpf.converter.pdf.PdfOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.*;

public class word2pdf {

    /**
     * @param args the command line arguments
     * @throws java.io.IOException
     */
    public static void main(String[] args) throws IOException {
        String docPath = "D:\\wordpdf\\test.docx";
        String pdfPath = "D:\\wordpdf\\test.pdf";

        XWPFDocument document;
        InputStream doc = new FileInputStream(docPath);
        document = new XWPFDocument(doc);
        PdfOptions options = PdfOptions.create();
        OutputStream out = new FileOutputStream(pdfPath);
        PdfConverter.getInstance().convert(document, out, options);

        doc.close();
        out.close();
    }

}

test.docx 截图

template.docx截图

效果截图

相关推荐
乌暮16 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
学长毕设16 小时前
基于SpringBoot的烘焙商品商品系统-附源码
java·spring boot·后端
এ慕ོ冬℘゜16 小时前
JS 事件循环、宏任务微任务:单线程底层原理 + 执行顺序
开发语言·javascript·ecmascript
其实防守也摸鱼16 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
web打印社区16 小时前
Lodop排障总纲-常见报错一张表
开发语言·前端·javascript·chrome·websocket
金銀銅鐵17 小时前
[Java] 用纯 Swing 做一个《論語·學而》阅读器
java·ai编程·交互设计
艾伦_耶格宇17 小时前
【kubernetes - 1.28版本】-11 K8S核心组件
java·容器·kubernetes
Dxy123931021617 小时前
JS AES加密详解
开发语言·javascript·ecmascript
2301_7807896618 小时前
深度伪造即服务:新型网络诈骗的“完美面具”与识别之道
java·网络·ddos
信息安全失业大专人员18 小时前
每日了解一个智能体-WorkBuddy
开发语言·ai·c#·智能体