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;
    }
相关推荐
Flittly2 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了2 小时前
Java 生成二维码解决方案
java·后端
人活一口气7 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP9 小时前
Vibe Coding -- 完整项目案例实操
java
荣码9 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing9 小时前
Google第三方授权登录
java·后端·程序员
明月光8189 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑18 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯19 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路1 天前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java