Java 在 Word 中绘制复选框

此功能需要在spring boot环境

一、引入依赖

详情请查看:https://blog.csdn.net/weixin_45061924/article/details/128251786

二、实现

2.1 设置测试文档

在word文档中复选框一般出现在表格中,因此设置如下测试文档:image.png
在文档中使用Symbol用于占位,在生成新文档时用相应的复选框替换占位符即可。

2.2 代码实现
    public void TextDrawCombox(){
        Document doc = new Document();

        //读取文档
        doc.loadFromFile("D:\\桌面\\text.docx", FileFormat.Docx);
        //获取第一个section
        Section section = doc.getSections().get(0);
        //获取第一个表格
        ITable table = section.getTables().get(0);
        // 获取行
        TableRow tableRow = table.getRows().get(0);
        //获取单元格
        TableCell cell = tableRow.getCells().get(0);
        //获取段落
        Paragraph para = cell.getParagraphs().get(0);


        //设置段落中字体样式
        ParagraphStyle style= new ParagraphStyle(doc);
        style.setName("paraStyle");
        style.getCharacterFormat().setFontName("宋体");
        style.getCharacterFormat().setFontSize(11f);
        doc.getStyles().add(style);
        para.applyStyle("paraStyle");

        String symbol;
        //复选框打勾
        symbol= "Symbol1";
        TextSelection selection1 = doc.findString(symbol,true,true);
        TextRange tr1 = selection1.getAsOneRange();
        tr1.getCharacterFormat().setFontName("Wingdings 2");
        //除了16进制,也可以用10进制来表示这个符号,复选框打勾是82
        doc.replace(selection1.getSelectedText(), "\u0052", true, true);


        //复选框打叉
        symbol = "Symbol2";
        TextSelection selection2 = doc.findString(symbol,true,true);
        TextRange tr2 = selection2.getAsOneRange();
        tr2.getCharacterFormat().setFontName("Wingdings 2");
        //16进制复选框打叉是0053,10进制是83
        doc.replace(selection2.getSelectedText(), "\u0053", true, true);

        //复选框不勾选
        symbol = "Symbol3";
        TextSelection selection3 = doc.findString(symbol, true, true);
        TextRange tr3 = selection3.getAsOneRange();
        tr3.getCharacterFormat().setFontName("Wingdings 2");
        //16进制复选框不勾选是00A3,10进制是163
        doc.replace(selection3.getSelectedText(), "\u00A3", true, true);
        
        //输出文档
        doc.saveToFile("D:\\桌面\\text(1).doc", FileFormat.Docx);
    }

三、结果展示

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

€云起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值