天天看点

Java word aspose(3.1 生成word段落/表格/页码/分页 生成pdf)

作者:EYE33

1. 简单的word生成

一般情况下 不会有word生成的需求 常规情况下导出word都是基于模板的

这边仅简单介绍下word的生成

aspose生成PDF也很简单 一行代码就可以了

详见下述方法

2. word/pdf生成方法

package com.example.handler;

import com.aspose.words.*;
import com.example.global.Ret;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author LWB
 * @Description 导出word
 */
@Slf4j
@RestController
@RequestMapping("word")
public class ExportWordHandler {

    @SneakyThrows
    @PostMapping("createWord")
    public Ret createWord(){
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        //新增1行文本
        builder.writeln("Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!Hello World!");

        //新增1空白行
        builder.writeln();
        //新增1行文本 多个字符串拼接而成
        builder.write("我在测试生成word.");
        builder.write("是吗? 我来看看");

        //显示当前页码 总页数
        builder.writeln();
        builder.writeln();
        builder.write("当前页 ");
        builder.insertField("PAGE", "");
        builder.write(" ,共 ");
        builder.insertField("NUMPAGES", "");
        builder.write(" 页");

        //新开1页
        builder.insertBreak(BreakType.PAGE_BREAK);

        //插入1个表格
        //开始绘制表格
        Table table = builder.startTable();

        //第1行
        //插入第1个单元格
        builder.insertCell();
        builder.write("姓名");
        //插入第2个单元格(同一行)
        builder.insertCell();
        builder.write("孙悟空");
        //插入第3个单元格
        builder.insertCell();
        builder.write("出生日期");
        //插入第4个单元格
        builder.insertCell();
        builder.write("500年前");
        //结束当前行
        builder.endRow();

        //插入第2行
        //插入第1个单元格
        builder.insertCell();
        builder.write("爱好");
        //插入第2个单元格(同一行)
        builder.insertCell();
        builder.write("香蕉");
        //插入第3个单元格
        builder.insertCell();
        builder.write("兴趣");
        //插入第4个单元格
        builder.insertCell();
        builder.write("72变");
        //结束当前行
        builder.endRow();

        //表格宽度自适应
        table.autoFit(AutoFitBehavior.AUTO_FIT_TO_CONTENTS);
        //结束表格绘制
        builder.endTable();


        //显示当前页码 总页数
        builder.writeln();
        builder.writeln();
        builder.write("当前页 ");
        builder.insertField("PAGE", "");
        builder.write(" ,共 ");
        builder.insertField("NUMPAGES", "");
        builder.write(" 页");

        doc.updateFields();
        doc.save("C:/Users/Administrator/Desktop/aspose/createWord.docx", SaveFormat.DOCX);
        doc.save("C:/Users/Administrator/Desktop/aspose/createWord.pdf", SaveFormat.PDF);
        return Ret.success();
    }


}
           

3. 生成效果

Java word aspose(3.1 生成word段落/表格/页码/分页 生成pdf)

这是生成的word

Java word aspose(3.1 生成word段落/表格/页码/分页 生成pdf)

这是生成的PDF