java – 使用Apache poi从docx获取文本样式

我正在尝试从MS docx文件中获取样式信息,使用粗体,斜体等添加的样式编写文件内容没有问题.字体大小等,但阅读文件内容和获取样式信息并不是那么清楚.我尝试过使用X
WPFDocument,这个API似乎没有能力读取样式.我现在正在尝试XWPFWordExtractor,它似乎有点更有希望,但我仍然无法获取文本的样式信息.

我阅读的内容类型与以下内容类似.

“你好,这是粗体文字,这是斜体文字abd这是粗体斜体文字”

任何指向示例的指针都会很棒.

最佳答案 好的,基于Gagravarr的评论,解决方案如下所示,完全符合我的要求.所以基本上Gagravarr回答了这个问题,但我不确定除了说它听到给他信任之外还有多少.

for (XWPFParagraph paragraph : docx.getParagraphs()) {
                int pos = 0;
                for (XWPFRun run : paragraph.getRuns()) {
                    System.out.println("Current run IsBold : " + run.isBold());
                    System.out.println("Current run IsItalic : " + run.isItalic());
                    for (char c : run.text().toCharArray()) {

                        System.out.print(c);
                        pos++;
                    }
                    System.out.println();
                }
            }

`

输出如下

当前运行IsBold:false
当前运行IsItalic:false
“你好,这是
当前运行IsBold:true
当前运行IsItalic:false
粗体
当前运行IsBold:false
当前运行IsItalic:false
这是
当前运行IsBold:false
当前运行IsItalic:是的
斜体文字
当前运行IsBold:false
当前运行IsItalic:false
一个
当前运行IsBold:false
当前运行IsItalic:false
ñ
当前运行IsBold:false
当前运行IsItalic:false
这是
当前运行IsBold:true
当前运行IsItalic:是的
粗体斜体文字
当前运行IsBold:false
当前运行IsItalic:false

点赞