java给word设置复选框

poi设置

使用"Wingdings 2" 字体

java 复制代码
WordUtil.appendText(paragraph, "\uF052", "Wingdings 2",null);
WordUtil.appendText(paragraph, "□", null);

选中的复选框:

  • poi导出pdf的时候正常
  • 使用aspose-words导出pdf就空了

使用默认字体

java 复制代码
WordUtil.appendText(paragraph, "☑", null,null);
WordUtil.appendText(paragraph, "□", null);

选中的复选框:

  • poi导出pdf的时候是空,
  • 使用aspose-words导出pdf正常

又是心态爆炸的一天o(╥﹏╥)o

工具方法

java 复制代码
    /**
     * 在一行中追加文本
     *
     * @param text
     * @param fontName
     * @param paragraph
     */
    public static XWPFRun appendText(XWPFParagraph paragraph, String text, String fontName, Integer position) {
        XWPFRun run = paragraph.createRun();
        CTRPr ctrPr = run.getCTR().addNewRPr();
        CTFonts font = ctrPr.addNewRFonts();
        // ASCII 第一优先级(这个能匹配直接用这个,不行用下面的字体)
        if (StringUtils.isNotBlank(fontName)) {
            font.setAscii(fontName);    //上一种方法setFontFamily() 其实只调用了这个方法
        } else {
            font.setAscii("宋体");    //上一种方法setFontFamily() 其实只调用了这个方法

        }

        //中文
        font.setEastAsia("Arial");

// 其他字符(有想法可以自己去研究一下是什么字符的):
        font.setCs("宋体");
        //最低优先级
        font.setHAnsi("宋体");
        if (position != null) {
            ctrPr.addNewPosition().setVal(BigInteger.valueOf(position));
        }
        run.setText(text);

        return run;
    }
相关推荐
qianmoq2 分钟前
轻松掌握Java多线程 - 第二章:线程的生命周期
java·后端
风象南3 分钟前
Spring Boot 实现文件断点续传
java·spring boot·后端
Tadecanlan6 分钟前
[C++面试] 智能指针面试点(重点)续4
开发语言·c++·面试
Lecea_L9 分钟前
你能在K步内赚最多的钱吗?用Java解锁最大路径收益算法(含AI场景分析)
java·人工智能·算法
Tony8811 分钟前
热题100 - 394. 字符串解码
java·算法
2501_9071368212 分钟前
OfficeAI构建本地办公生态:WPS/Word双端联动,数据自由流转
人工智能·word·wps
cwtlw14 分钟前
JavaRedis和数据库相关面试题
java·数据库·笔记·面试
XF鸭15 分钟前
身份证正则表达式详解
java
快乐点吧16 分钟前
【Word】批注一键导出:VBA 宏
开发语言·c#·word
Lecea_L17 分钟前
🔍 找到数组里的“节奏感”:最长等差子序列
java·算法