Hi,
Thanks for your reply.
I now have the following code, to copy the Footer and maintain the content of the document:
Document srcDoc = new Document(docUri);
Document dstDoc = new Document();
dstDoc.removeAllChildren();
dstDoc.appendDocument(srcDoc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
dstDoc.getFirstSection().removeChild(dstDoc.getFirstSection().getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_FIRST));
dstDoc.getFirstSection().removeChild(dstDoc.getFirstSection().getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY));
dstDoc.getFirstSection().removeChild(dstDoc.getFirstSection().getHeadersFooters().getByHeaderFooterType(HeaderFooterType.FOOTER_EVEN));
dstDoc.getFirstSection().getPageSetup().setDifferentFirstPageHeaderFooter(true);
dstDoc.getFirstSection().getPageSetup().setOddAndEvenPagesHeaderFooter(true);
DocumentBuilder dstBuilder = new DocumentBuilder(dstDoc);
dstBuilder.moveToHeaderFooter(HeaderFooterType.HEADER_FIRST);
String imageFileName = "C:\Word\Logo1.gif";
dstBuilder.insertImage(imageFileName, RelativeHorizontalPosition.PAGE, 32.5, RelativeVerticalPosition.PAGE, 25, 233.3333333333334, 50, WrapType.THROUGH);
dstBuilder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);
imageFileName = "C:\Word\Logo2.gif";
// dstBuilder.insertImage(imageFileName, 40, 40);
dstBuilder.insertImage(imageFileName, RelativeHorizontalPosition.PAGE, 32.5, RelativeVerticalPosition.PAGE, 25, 40, 40, WrapType.THROUGH);
HeaderFooter footer = new HeaderFooter(dstDoc, HeaderFooterType.FOOTER_FIRST);
dstDoc.getFirstSection().getHeadersFooters().add(footer);
Node srcNode;
Node dstNode;
for (Iterator iterator = srcDoc.getFirstSection().getHeadersFooters().iterator(); iterator.hasNext() {
HeaderFooter type = (HeaderFooter)iterator.next();
if (type.getHeaderFooterType() == HeaderFooterType.FOOTER_PRIMARY)
{
for (Iterator iterator2 = type.getChildNodes().iterator(); iterator2.hasNext() {
srcNode = (Node)iterator2.next();
dstNode = dstDoc.importNode(srcNode, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
footer.appendChild(dstNode);
}
}
}
footer = new HeaderFooter(dstDoc, HeaderFooterType.FOOTER_PRIMARY);
dstDoc.getFirstSection().getHeadersFooters().add(footer);
for (Iterator iterator = srcDoc.getFirstSection().getHeadersFooters().iterator(); iterator.hasNext() {
HeaderFooter type = (HeaderFooter)iterator.next();
if (type.getHeaderFooterType() == HeaderFooterType.FOOTER_PRIMARY)
{
for (Iterator iterator2 = type.getChildNodes().iterator(); iterator2.hasNext() {
srcNode = (Node)iterator2.next();
dstNode = dstDoc.importNode(srcNode, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
footer.appendChild(dstNode);
}
}
}
footer = new HeaderFooter(dstDoc, HeaderFooterType.FOOTER_EVEN);
dstDoc.getFirstSection().getHeadersFooters().add(footer);
for (Iterator iterator = srcDoc.getFirstSection().getHeadersFooters().iterator(); iterator.hasNext() {
HeaderFooter type = (HeaderFooter)iterator.next();
if (type.getHeaderFooterType() == HeaderFooterType.FOOTER_PRIMARY)
{
for (Iterator iterator2 = type.getChildNodes().iterator(); iterator2.hasNext() {
srcNode = (Node)iterator2.next();
dstNode = dstDoc.importNode(srcNode, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
footer.appendChild(dstNode);
}
}
}
dstBuilder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
dstBuilder.moveToCell(0, 0, 1, 0);
dstBuilder.insertField("PAGE", "");
dstBuilder.write("/");
dstBuilder.insertField("NUMPAGES", "");
dstBuilder.moveToHeaderFooter(HeaderFooterType.FOOTER_EVEN);
dstBuilder.moveToCell(0, 0, 1, 0);
dstBuilder.insertField("PAGE", "");
dstBuilder.write("/");
dstBuilder.insertField("NUMPAGES", "");
dstDoc.save(docUri.substring(0, docUri.length() - 4) + "_result.docx");
The only problem I still have, is that below my table (which is in my footer) he adds an paragraph. This paragraph is not in my srcDoc, nor in my PrimaryFooter. But it appears in the FOOTER_FIRST and FOOTER_EVEN in the dstDoc. Because of this paragraph, you can see that the last page from the srcDoc is now on 2 pages in the dstDoc… Is there any way to get rid of this ?
Attached you can find the srcDoc and dstDoc, the logo’s I add in the different headers, are placed hard coded in my C:\Word for now.
Many thanks for your reply, it really feels that I’m close to a complete solution for our costumer.
Regards