导出word文档(office,wps都可以打开)带封面目录

本文介绍如何利用Java技术生成包含封面和目录的Word文档,确保内容能在Office和WPS中顺利打开。通过示例代码,展示从创建封面、设置样式到自动生成目录的完整流程。
摘要由CSDN通过智能技术生成
public ResponseEntity<org.springframework.core.io.Resource> exportWord(HttpServletRequest request, HttpServletResponse response) {
 
        // 标题
        String title = "封面标题";
        try {
            XWPFDocument document= new XWPFDocument();
           /* //目录
            document.createTOC();*/
//业务代码,主要是大纲集合
            fafzbxCatalogList.forEach(item->{

                //添加标题
                XWPFParagraph titleParagraph = document.createParagraph();
                // 获取新建文档样式
                XWPFStyles docStyle = document.createStyles();

                // 老外自定义了一个名字,中文版的最好还是按照word给的标题名来,否则级别上可能会乱
                WordTools.addCustomHeadingStyle(document, item.getName(), item.getLevel());

                /*//设置段落居中
                titleParagraph.setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER);*/
                // 关键行// 大纲
                titleParagraph.setStyle(item.getName());
                XWPFRun titleParagraphRun = titleParagraph.createRun();

                titleParagraphRun.setText(item.getName());
                titleParagraphRun.setColor("000000");
                if("1".equals(item.getLevel().toString())){
                    titleParagraphRun.setFontSize(22);
                }else if("2".equals(item.getLevel().toString()) || "3".equals(item.getLevel().toString())){
                    titleParagraphRun.setFontSize(16);
                }else if("4".equals(item.getLevel().toString()) || "5".equals(item.getLevel().toString())){
                    titleParagraphRun.setFontSize(14);
                }else {
                    titleParagraphRun.setFontSize(12);
                }
//业务代码主要是内容
                FafzbxChapters fafzbxChapters = fafzbxChaptersRepository.findByDeletedAndCatalogId("0",item.getId());
                if(Objects.nonNull(fafzbxChapters)){
                    //段落
                    XWPFParagraph firstParagraph = document.createParagraph();
                    XWPFRun run = firstParagraph.createRun();

                    String content = fafzbxChapters.getFzbxContent();
                    run = img(content,run);
                    //
                    run.setColor("000000");
                    run.setFontSize(11);

                    /*//换行
                    run.addBreak(BreakType.TEXT_WRAPPING);*/

                    /*//设置段落背景颜色
                    CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
                    cTShd.setVal(STShd.CLEAR);
                    cTShd.setFill("97FFFF");*/
                }
                /*//换行
                XWPFParagraph paragraph1 = document.createParagraph();
                XWPFRun paragraphRun1 = paragraph1.createRun();
                paragraphRun1.setText("\r");*/

            });

            //输出路径
            String p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值