Я создаю файл docx, используя библиотеку DOCx4j на Java. Я создал нижний колонтитул, который отлично отображается в Libra Office, но не отображается в MS-Word 2016.
Код нижнего колонтитула:
public static Relationship createFooterPageNumPart(
WordprocessingMLPackage wordprocessingMLPackage) throws Exception {
FooterPart footerPart = new FooterPart();
MainDocumentPart t = wordprocessingMLPackage.getMainDocumentPart();
footerPart.setPackage(wordprocessingMLPackage);
// footerPart.setJaxbElement(createFooterWithPageNr());
footerPart.setJaxbElement(createFooterWithPageNr(wordprocessingMLPackage,footerPart));
return t.addTargetPart(footerPart);
}
public static Ftr createFooterWithPageNr(WordprocessingMLPackage wordprocessingMLPackage, Part sourcePart) throws Exception {
Ftr ftr = objectFactory.createFtr();
P paragraph = objectFactory.createP();
RPr fontRPr = getRPr(objectFactory, "Frutiger LT Arabic 45 Light", "000000", "20", STHint.EAST_ASIA,
false, false, false, false);
R run = objectFactory.createR();
run.setRPr(fontRPr);
paragraph.getContent().add(run);
setParagraphAlign(objectFactory, paragraph, JcEnumeration.RIGHT);
ftr.getContent().add(paragraph);
return ftr;
}
public static void createFooterReference(
WordprocessingMLPackage wordprocessingMLPackage,
Relationship relationship)
throws InvalidFormatException {
List<SectionWrapper> sections = wordprocessingMLPackage
.getDocumentModel().getSections();
SectPr sectPr = sections.get(sections.size() - 1).getSectPr();
// There is always a section wrapper, but it might not contain a sectPr
if (sectPr == null) {
sectPr = objectFactory.createSectPr();
wordprocessingMLPackage.getMainDocumentPart().addObject(sectPr);
sections.get(sections.size() - 1).setSectPr(sectPr);
}
FooterReference footerReference = objectFactory.createFooterReference();
footerReference.setId(relationship.getId());
footerReference.setType(HdrFtrRef.DEFAULT);
sectPr.getEGHdrFtrReferences().add(footerReference);
}
Пожалуйста, помогите мне найти причину ошибки.