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;
    }
相关推荐
毕设源码-邱学长5 分钟前
【开题答辩全过程】以 博物馆参观预约管理系统为例,包含答辩的问题和答案
java·eclipse
FriendshipT5 分钟前
Nuitka 将 Python 脚本封装为 .pyd 或 .so 文件
开发语言·python
她说人狗殊途10 分钟前
动态代理1
开发语言·python
草丛中的蝈蝈17 分钟前
qt中给QListWidget添加上下文菜单(快捷菜单)
开发语言·qt
郭庆汝27 分钟前
Windows安装java流程
java·windows·android studio
Yvonne爱编码32 分钟前
后端编程开发路径:从入门到精通的系统性探索
java·前端·后端·python·sql·go
迦蓝叶1 小时前
JAiRouter 0.8.0 发布:Docker 全自动化交付 + 多架构镜像,一键上线不是梦
java·人工智能·网关·docker·ai·架构·自动化
lljss20201 小时前
C# 每个chartArea显示最小值、平均值、最大值
开发语言·c#
yzpyzp1 小时前
kotlin的函数前面增加suspend关键字的作用
android·开发语言·kotlin
jiet_h1 小时前
Android Kotlin ObjectAnimator 和 ValueAnimator 全面解析
android·开发语言·kotlin