使用Apache POI将样式和编号应用于Word文档

时间:2020-08-29 18:42:15

标签: java apache-poi docx

我正在使用Apache POI编辑docx文件的内容。我还需要对docx应用特定的样式。我需要应用的样式在dotx文件中。 在这个问题How can I use predefined formats in DOCX with POI?中,我找到了以下解决方案:

XWPFDocument template = new XWPFDocument(new FileInputStream(new File("Template.dotx")));       

XWPFDocument doc = new XWPFDocument();      
// let's copy styles from template to new doc
doc.createStyles().setStyles(template.getStyle());

直到最近发生了一些变化之前,它一直运转良好。经过研究,我发现问题出在docx文件中的numbering.xml。 据我了解,numbering.xml和styles.xml是链接在一起的。 因此,将样式设置为XWPFDocument很好,但是我还需要设置编号。

我找到了与createStyles().setStyles(xxx)等效的方法: createNumbering().setNumbering(yyy)

setNumbering期望使用类型为CTNumbering的参数(就像setStyles期望使用参数CTSyles一样)。 虽然文档具有方法getStyles()返回CTSyles,但是它没有方法返回CTNumbering。但是,它确实具有返回getNumbering的{​​{1}}方法(同样,就像它具有XWPFNumbering一样,没有s-返回getStyle())。

我使用s-方法研究了XWPFStyles-,并且已经能够创建一个等效的返回getStyles()的方法。

我的问题是:有没有更简单的方法将文档编号应用于另一个?

0 个答案:

没有答案
相关问题