Java ApachePOI从XWPFRun获取换行符

Java ApachePOI从XWPFRun获取换行符,java,apache-poi,docx,line-breaks,xwpf,Java,Apache Poi,Docx,Line Breaks,Xwpf,我在使用ApachePOI3.15从docx文件读取空白时遇到问题。我有一个Word文档,其中有换行符,当通过ApachePOI读取文件时,我找不到获得这些换行符的方法。当我调用段落.getParagraphText()时,返回的文本带有换行符。当我迭代XWPFRun对象时,我只得到文本和格式,但没有关于换行符的信息 这是我使用的代码。br、tab、cr和分隔符列表始终为空 XWPFDocument document = new XWPFDocument(fis); Li

我在使用ApachePOI3.15从docx文件读取空白时遇到问题。我有一个Word文档,其中有换行符,当通过ApachePOI读取文件时,我找不到获得这些换行符的方法。当我调用
段落.getParagraphText()
时,返回的文本带有换行符。当我迭代XWPFRun对象时,我只得到文本和格式,但没有关于换行符的信息

这是我使用的代码。br、tab、cr和分隔符列表始终为空

        XWPFDocument document = new XWPFDocument(fis);
    List<XWPFParagraph> paragraphs = document.getParagraphs();

    for(XWPFParagraph paragraph : paragraphs) {
        //System.out.println(paragraph.getParagraphText());
        for(XWPFRun run : paragraph.getRuns()) {
            CTR ctr = run.getCTR();
            List<CTBr> brList = ctr.getBrList();
            List<CTEmpty> tabList = ctr.getTabList();
            List<CTEmpty> crList = ctr.getCrList();             
            List<CTEmpty> separatorList = ctr.getSeparatorList();
            String text = run.getText(run.getTextPosition());
            String color =run.getColor();
            boolean bold = run.isBold();
            boolean italic = run.isItalic();
            System.out.println("text: " + text + " color: " + color + " bold: " + bold + " italic: " + italic); 

            for(CTEmpty cr : crList) {
                System.out.println(cr);
            }
        }           
    }
XWPFDocument document=新的XWPFDocument(fis);
列表段落=document.getPages();
对于(XWPFParagraph段落:段落){
//System.out.println(段落.getParagraphText());
对于(XWPFRun:paragration.getRuns()){
CTR CTR=run.getCTR();
List brList=ctr.getBrList();
List tabList=ctr.getTabList();
List crList=ctr.getCrList();
List separatorList=ctr.getSeparatorList();
String text=run.getText(run.getTextPosition());
String color=run.getColor();
布尔粗体=run.isBold();
布尔斜体=run.isItalic();
System.out.println(“文本:“+text+”颜色:“+color+”粗体:“+bold+”斜体:“+italic”);
用于(CTCR:crList){
系统输出打印项次(cr);
}
}           
}
是使用CTR对象来纠正路线,还是有其他方法来获得这些换行符


我找到了一个解决方案来获得换行符。正常输入将作为自己的段落返回,不包含带有spacingAfter值的文本。段落中的软回车通过
run.getCTR()返回为换行符。getBrList

可能是换行符未编码在CT类中,而是嵌入了新的换行符吗?你能附上一份展示问题的样本文件吗?请提供问题发生的样本段落。好问题。在ApachePOI中,还不清楚如何根据元素的自然顺序迭代运行中的元素。例如:text、br、text但我们如何知道它们相对于运行中的文本元素的位置?例如,如果我们有text,br,text,我们如何获得运行中所有元素的列表?