我试图创建一个能够读取word文件(docx)的应用程序并用它来做一些事情。到目前为止,除了识别子弹之外,我几乎完成了所有事情。 我可以找到isBold(),isItalic(),isStrike()但我似乎无法找到 isBullet()
任何人都可以告诉我如何识别子弹吗?
该应用程序是用Java构建的
答案 0 :(得分:1)
没有IOException
方法,因为Word中的列表样式比这复杂得多。你有不同的缩进级别,不同风格的项目符号,编号列表和项目符号列表等
对于您的用例,最简单的方法可能是XWPFParagraph.html.getNumFmt():
返回此段落的编号格式,例如bullet或lowerLetter。如果此段落没有数字样式,则返回null。
调用它,如果你得到null,它就不是一个列表,如果是,你就会知道它是否带有项目符号,数字,字母等
答案 1 :(得分:0)
您可以使用以下代码获取word文档中所有项目符号的列表。我使用过apache poi的XWPF api。
public class ListTest {
public static void main(String[] args) {
String filename = "file_path";
List<String> paraList = new ArrayList<String>();
try {
// is = new FileInputStream(fileName);
XWPFDocument doc =
new XWPFDocument(OPCPackage.open(filename));
List<XWPFParagraph> paragraphList = doc.getParagraphs();
for(XWPFParagraph para :paragraphList) {
if((para.getStyle()!=null) && (para.getNumFmt() !=null)) {
paraList.add(para.getText());
}
for(String bullet :paraList) {
System.out.println(bullet);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}