java - Apache POI 从 XWPFRun 获取换行符

标签 java apache-poi docx line-breaks xwpf

我在使用 Apache POI 3.15 读取 docx 文件中的空格时遇到问题。我有一个包含换行符的 Word 文档,当通过 apache poi 读取该文件时,我找不到获取这些换行符的方法。当我调用paragraph.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);
            }
        }           
    }

是否使用 CTR 对象来纠正路径,或者是否有其他方法来获取这些换行符?

Word Example

最佳答案

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

作为中断返回

关于java - Apache POI 从 XWPFRun 获取换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42901518/

相关文章:

java - 显式转换返回

java - Guava 库和 GWT

java - 使用 XSSFSheetXMLHandler 获取样式信息

php - 使用 PHP 为目录中的文件显示 docx 属性(标题、标签)

java - flaying Sacer org.xml.sax.SAXParseException 实体 HTML.Version 的声明必须以 > 结尾

java - 如何从java确定mysql中存储过程中没有参数

java - 使用java读取单列excel表

java - 使用 Java 将数据动态插入 Excel 中

internet-explorer - IE打不开 "application/vnd.openxmlformats-officedocument.wordprocessingml.document"

ruby-on-rails - rails : How can I use system zip on Heroku to make a docx from an xml template?