qq_43683942 2023-10-25 09:41 采纳率: 50%
浏览 25
已结题

poi 设置允许西文在单词中间换行


        // 创建一个新的文档
        XWPFDocument document = new XWPFDocument();

        // 创建段落
        XWPFParagraph firstParagraph = document.createParagraph();
        firstParagraph.setSpacingBetween(1.5);
        firstParagraph.setStyle("1111");
        firstParagraph.setVerticalAlignment(TextAlignment.AUTO);
        // 创建文本
        XWPFRun run3 = firstParagraph.createRun();
        run3.setText("        " + "②网上办:");
        run3.setFontFamily("微软雅黑");
        run3.setFontSize(16);

        run3 = firstParagraph.createRun();
        run3.setText("测试测试测试测:https://aaaa.aa.aaa.aa/aaaaaaaaa/item/toDetails/7eecb643-c88b-433e-942e-7c14ae6cd7cc");
        run3.setFontSize(16);
        run3.setFontFamily("宋体");
        try {
            // 将文档保存到文件
            FileOutputStream out = new FileOutputStream("D:\\example.docx");
            document.write(out);
            out.close();
            System.out.println("文档创建成功!");
        } catch (IOException e) {
            System.out.println("创建文档时出现错误:" + e.getMessage());
        }

    }

img

  • 写回答

10条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2023-10-25 10:39
    关注

    稍等下,我这边给你调式下
    您好题主,目前亲测,设置允许西文在单词中间换行。一定能帮助到您,帮助到您,麻烦可以点击下采纳!

    以下是实现代码:

    依赖:
     <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>5.2.2</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml-full</artifactId>
                <version>5.2.2</version>
            </dependency>
    
    
    代码:
    import org.apache.poi.xwpf.usermodel.TextAlignment;
    import org.apache.poi.xwpf.usermodel.XWPFDocument;
    import org.apache.poi.xwpf.usermodel.XWPFParagraph;
    import org.apache.poi.xwpf.usermodel.XWPFRun;
    import org.openxmlformats.schemas.officeDocument.x2006.sharedTypes.STOnOff1;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTOnOff;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr;
    
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    
    /**
     * @author caozhen
     * @ClassName FF
     * @description: TODO
     * @date 2023年10月10日
     * @version: 1.0
     */
    public class FF {
    
        public static void main(String[] args) {
    
            // 创建一个新的文档
            XWPFDocument document = new XWPFDocument();
    
            // 创建段落
            XWPFParagraph firstParagraph = document.createParagraph();
            firstParagraph.setSpacingBetween(1.5);
            firstParagraph.setStyle("1111");
            firstParagraph.setVerticalAlignment(TextAlignment.AUTO);
            // 设置允许在单词中间换行
            setParagraphWrap(firstParagraph, true);
            // 创建文本
            XWPFRun run3 = firstParagraph.createRun();
            run3.setText("        " + "②网上办:");
            run3.setFontFamily("微软雅黑");
            run3.setFontSize(16);
    
            run3 = firstParagraph.createRun();
            run3.setText("测试测试测试测:https://aaaa.aa.aaa.aa/aaaaaaaaa/item/toDetails/7eecb643-c88b-433e-942e-7c14ae6cd7cc");
            run3.setFontSize(16);
            run3.setFontFamily("宋体");
            // 允许在单词中间换行
            run3.addCarriageReturn();
            try {
                // 将文档保存到文件
                FileOutputStream out = new FileOutputStream("D:\\example.docx");
                document.write(out);
                out.close();
                System.out.println("文档创建成功!");
            } catch (IOException e) {
                System.out.println("创建文档时出现错误:" + e.getMessage());
            }
    
        }
    
        /**
         * 段落设置-中文板式 : 允许西文在单词中间换行
         */
        public static void setParagraphWrap(XWPFParagraph paragraph, boolean allow) {
            //解释:   允许后(勾选) word展示效果
            //          |         这是一个段落,   |       |带来了珍贵的礼物——      |
            //          |paragraph               |       | 五彩缤纷的落叶。       |
    
            //         不允许(取消勾选) word展示效果
            //          |         这是一个段落,par|       |带来了珍贵的礼物——五彩缤 |
            //          |agraph                  |       |纷的落叶。              |
    
            CTP ctp = paragraph.getCTP();
            CTPPr ctpPr = ctp.isSetPPr() ? ctp.getPPr() : ctp.addNewPPr();
            CTOnOff ctOnOff = ctpPr.isSetWordWrap() ? ctpPr.getWordWrap() : ctpPr.addNewWordWrap();
            if (allow) {  //允许
                ctOnOff.setVal(STOnOff1.OFF);
            } else {      //不允许
                ctpPr.unsetWordWrap();
            }
        }
    
    

    测试结果:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(9条)

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 赞助了问题酬金15元 10月25日
  • 创建了问题 10月25日

悬赏问题

  • ¥50 请教 麒麟系统挂载怎么安装
  • ¥15 如何在ns3中实现路径的自由切换
  • ¥20 SpringBoot+Vue3
  • ¥15 IT从业者的调查问卷
  • ¥65 LineageOs-21.0系统编译问题
  • ¥30 关于#c++#的问题,请各位专家解答!
  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro