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

简介: 【java】poi 设置允许西文在单词中间换行

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

6666.jpeg

一、问题描述

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());
        }

    }

image.png

二、解决问题

问题解决方案:

依赖:

<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();
        }
    }

image.png

相关文章
|
16小时前
|
Java
java环境变量设置
在Java环境配置中,首先找到Java安装目录(如`C:\Program Files\Java\jdk1.8.0_291`),然后将JDK的bin目录添加到系统环境变量Path中。这涉及右键点击“计算机”-&gt;“属性”-&gt;“高级系统设置”-&gt;“环境变量”-&gt;编辑“Path”-&gt;“新建”并输入`C:\Program Files\Java\jdk1.8.0_291\bin`。保存后,重启命令行,输入`java -version`检查设置是否成功。
26 4
|
16小时前
|
Java
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
37 0
|
16小时前
|
移动开发 前端开发 Java
STS里的java 工程项目名称修改和目录设置成源代码
STS里的java 工程项目名称修改和目录设置成源代码
|
16小时前
|
Java Apache
Java代码使用POI导出的单元格加上边框和背景色
【5月更文挑战第3天】Java代码使用POI导出的单元格加上边框和背景色
38 0
|
16小时前
|
Java Apache
Java代码使用POI导出的单元格的字体加粗设置
【5月更文挑战第3天】Java代码使用POI导出的单元格的字体加粗设置
27 1
|
16小时前
|
Java Linux 开发工具
手把手教你Linux查找Java的安装目录并设置环境变量以及Linux下执行javac未找到命令的保姆级教学
手把手教你Linux查找Java的安装目录并设置环境变量以及Linux下执行javac未找到命令的保姆级教学
11 0
|
16小时前
|
Java Python
设置代理ip——java
设置代理ip——java
|
16小时前
|
存储 物联网 大数据
Java+BS +saas云HIS系统源码SpringBoot+itext + POI + ureport2数字化医院系统源码
医院云HIS系统是一种运用云计算、大数据、物联网等新兴信息技术的业务和技术平台。它按照现代医疗卫生管理要求,在特定区域内以数字化形式收集、存储、传递和处理医疗卫生行业的数据。通过云HIS系统,可以实现区域内医疗卫生信息资源的集中统管、统一调配、按需服务,为居民、医疗机构、卫生管理机关和其他机构提供云服务。
30 1
|
16小时前
|
Java
java实现上位机与西门子PLC的通讯设置
这段代码创建了一个ZCAN_Transmit_Data数组,初始化并设置了数组中的第一个元素,包括写入数据、传输类型为1。然后,创建了一个ZCAN_CAN_FRAME对象,指定了CAN_ID和数据长度为8,并将十六进制字符串转换为字节数组填充到数据字段。将这个帧赋值给ZCAN_Transmit_Data对象。最后通过ZLGCAN接口发送数据,如果返回值不等于1,则抛出异常,否则返回发送结果。
|
16小时前
|
Java
java中jar启动设置内存大小java -jar 设置堆栈内存大小
java中jar启动设置内存大小java -jar 设置堆栈内存大小
20 1