我在使用docx4j将docx文档导出到html时遇到问题。我的应用程序从几个文档中剪切出段落,然后将其连接到一个文档中,然后将它导出到html中。
问题出在清单上。生成的docx打开,我想要的内容就在那里(尽管它指出文档有错误,而不是项目符号列表,而是一个编号列表),但在html导出过程中,我收到以下错误消息:
错误 org.docx4j.model.PropertyResolver.getEffectivePPr行635-找不到样式:ListParagraph
我已经列出了已知的样式,还签入了StyleTree,ListParagraph就在那里。
如果我创建一个新的PStyle并将其分配给有问题的段落,错误就会消失,但列表格式也是如此。这是一个没有项目符号的简单段落(应该如此)。如果我试图分配除"Normal"之外的任何其他样式,我会得到相同的错误,只是错误消息中有其他样式名称。
if (paragraphProp.getPStyle().getVal().equals("ListParagraph")) {
listElements.add(paragraph);
另一件奇怪的事情是,我可以找到基于这种风格的段落,但指定相同的风格会出错。。。意思是,上面的"如果"是有效的,段落被添加到列表中,但这会导致上面提到的错误(我尝试过将列表段落单独编写,所以这不是问题所在):
PStyle style = new PStyle();
style.setVal("ListParagraph");
paragraphProp.setPStyle(style);
我还注意到,在生成的html中,段落只有Normal和DocDefaults类名。
提前非常感谢!
请尝试docx4j-nightly-2013 0828.jar,它包含了一个修复程序。