Hi, Our customer reported merging templates with bullets (with their letterhead) is causing an issue. The picture below shows the result:-
With no letterhead selected the document merges fine with the bullets aligning as they should:-
When in their template I can see that there is an indent that is in place just beside the number 13 (the template is attached so you can see for yourself)
When I double click on the indent the following pops up and I have worked out that is you clear the indent on each line of the bullet points then when you upload the template without indents it merges fine. To clear the indent, I double click on it and use the clear all button.
When the indents are removed from the template then it merges fine with the Letterhead. Why should the introduction of letterhead cause the indent to take this course of action?
In our code we set KEEP_SOURCE_FORMATTING but looks like that is not considered.
Can you please advice how we can fix this issue.
letterhead.docx (69.8 KB)
maintemplate.docx (29.5 KB)
This is our code how we merge documents:
if (applyHeader) {
if ( (Array.isArray(headerFile) && headerFile.length !== 0) || (typeof headerFile === 'string' && headerFile.trim().length > 0)) {
var headerDoc = new Document(headerFile.toString(), options);
updatedDocument = new Document();
builder2 = new DocumentBuilder(updatedDocument.getDocument());
builder2.insertDocument(doc, ImportFormatMode.KEEP_DIFFERENT_STYLES);
var hbuilder = new DocumentBuilder(headerDoc.getDocument());
var headerPageNr = hbuilder.getDocument().getPageCount();
mergeHeaderFooter(hbuilder, builder2, true, sameHeaderFooterFile, useHeaderFirstPageOnly, useFooterFirstPageOnly, nrPages, headerPageNr, pageSetup)
}
}
function mergeHeaderFooter(sourceBuilder, destBuilder, isHeader, isFooter, firstPageOnly, firstPageOnlyFooter, nrPages, footerPageNr, pageSetup) {
var fbuilderfooter = null;
var sections = destBuilder.getDocument().getSections();
if (sections) {
var sectionCount = sections.getCount();
if (firstPageOnly && firstPageOnlyFooter) {
sectionCount = 1
}
for (var index = 0; index < sectionCount; index++) {
/**@type {Packages.com.aspose.words.Section}*/
var section = sections.get(index);
//set margins from header/footer file to the destination file
if (isFooter) {
if (section.getPageSetup().getBottomMargin() < sourceBuilder.getPageSetup().getBottomMargin()) {
section.getPageSetup().setBottomMargin(sourceBuilder.getPageSetup().getBottomMargin());
}
section.getPageSetup().setFooterDistance(sourceBuilder.getPageSetup().getFooterDistance());
}
if (isHeader) {
if (section.getPageSetup().getTopMargin() < sourceBuilder.getPageSetup().getTopMargin()) {
section.getPageSetup().setTopMargin(sourceBuilder.getPageSetup().getTopMargin());
}
if (pageSetup) {
if (pageSetup.copyLeftRightMarginHeaderDocument) {
section.getPageSetup().setRightMargin(sourceBuilder.getPageSetup().getRightMargin());
section.getPageSetup().setLeftMargin(sourceBuilder.getPageSetup().getLeftMargin());
}
}
section.getPageSetup().setHeaderDistance(sourceBuilder.getPageSetup().getHeaderDistance());
}
if (index == 0) {
if (firstPageOnly || firstPageOnlyFooter) {
section.getPageSetup().setDifferentFirstPageHeaderFooter(true);
} else {
if (isFooter && section.getPageSetup().getDifferentFirstPageHeaderFooter() && !sourceBuilder.getPageSetup().getDifferentFirstPageHeaderFooter()) {
section.getPageSetup().setDifferentFirstPageHeaderFooter(sourceBuilder.getPageSetup().getDifferentFirstPageHeaderFooter());
} else {
section.getPageSetup().setDifferentFirstPageHeaderFooter(sourceBuilder.getPageSetup().getDifferentFirstPageHeaderFooter());
}
}
}
if (isHeader) {
/**@type {Packages.com.aspose.words.HeaderFooter}*/
var currFooter = section.getHeadersFooters().getByHeaderFooterType(headerFooterType.HEADER_FIRST);
if (firstPageOnly || firstPageOnlyFooter) {
fbuilderfooter = sourceBuilder.getCurrentSection().getHeadersFooters().getByHeaderFooterType(headerFooterType.HEADER_PRIMARY);
} else {
fbuilderfooter = sourceBuilder.getCurrentSection().getHeadersFooters().getByHeaderFooterType(headerFooterType.HEADER_FIRST);
}
if (fbuilderfooter != null) {
if (currFooter == null) {
// There is no header of the specified type in the current section, create it.
currFooter = new HeaderFooter(destBuilder.getDocument(), headerFooterType.HEADER_FIRST);
section.getHeadersFooters().add(currFooter);
}
currFooter.removeAllChildren();
for (var i2 = fbuilderfooter.getChildNodes(NodeType.ANY, false).getCount() - 1; i2 >= 0; i2--) {
var node = fbuilderfooter.getChildNodes(NodeType.ANY, false).get(i2);
var importnode = destBuilder.getDocument().importNode(node, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
// if (footerPageNr > 1) {
// currFooter.appendChild(importnode);
// } else {
currFooter.prependChild(importnode);
// }
}
}
}
if (isFooter) {
var currFooter = section.getHeadersFooters().getByHeaderFooterType(headerFooterType.FOOTER_FIRST);
if (firstPageOnly || firstPageOnlyFooter) {
fbuilderfooter = sourceBuilder.getCurrentSection().getHeadersFooters().getByHeaderFooterType(headerFooterType.FOOTER_PRIMARY);
} else {
fbuilderfooter = sourceBuilder.getCurrentSection().getHeadersFooters().getByHeaderFooterType(headerFooterType.FOOTER_FIRST);
}
if (fbuilderfooter != null) {
if (currFooter == null) {
// There is no header of the specified type in the current section, create it.
currFooter = new HeaderFooter(destBuilder.getDocument(), headerFooterType.FOOTER_FIRST);
section.getHeadersFooters().add(currFooter);
}
currFooter.removeAllChildren();
for (var i2 = fbuilderfooter.getChildNodes(NodeType.ANY, false).getCount() - 1; i2 >= 0; i2--) {
var node = fbuilderfooter.getChildNodes(NodeType.ANY, false).get(i2);
var importnode = destBuilder.getDocument().importNode(node, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
currFooter.prependChild(importnode);
}
}
}
if (!firstPageOnly) {
if (isHeader) {
var currFooter = section.getHeadersFooters().getByHeaderFooterType(headerFooterType.HEADER_PRIMARY);
fbuilderfooter = sourceBuilder.getCurrentSection().getHeadersFooters().getByHeaderFooterType(headerFooterType.HEADER_PRIMARY);
if (fbuilderfooter != null) {
if (currFooter == null) {
// There is no header of the specified type in the current section, create it.
currFooter = new HeaderFooter(destBuilder.getDocument(), headerFooterType.HEADER_PRIMARY);
section.getHeadersFooters().add(currFooter);
}
currFooter.removeAllChildren();
for (var i2 = fbuilderfooter.getChildNodes(NodeType.ANY, false).getCount() - 1; i2 >= 0; i2--) {
var node = fbuilderfooter.getChildNodes(NodeType.ANY, false).get(i2);
var importnode = destBuilder.getDocument().importNode(node, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
currFooter.prependChild(importnode);
}
}
}
}
if (!firstPageOnlyFooter) {
if (isFooter) {
var currFooter = section.getHeadersFooters().getByHeaderFooterType(headerFooterType.FOOTER_PRIMARY);
fbuilderfooter = sourceBuilder.getCurrentSection().getHeadersFooters().getByHeaderFooterType(headerFooterType.FOOTER_PRIMARY);
if (fbuilderfooter != null) {
if (currFooter == null) {
// There is no header of the specified type in the current section, create it.
currFooter = new HeaderFooter(destBuilder.getDocument(), headerFooterType.FOOTER_PRIMARY);
section.getHeadersFooters().add(currFooter);
}
currFooter.removeAllChildren();
for (var i2 = fbuilderfooter.getChildNodes(NodeType.ANY, false).getCount() - 1; i2 >= 0; i2--) {
var node = fbuilderfooter.getChildNodes(NodeType.ANY, false).get(i2);
var importnode = destBuilder.getDocument().importNode(node, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
currFooter.prependChild(importnode);
}
}
}
}
if (!firstPageOnly) {
if (isHeader) {
var currFooter = section.getHeadersFooters().getByHeaderFooterType(headerFooterType.HEADER_EVEN);
fbuilderfooter = sourceBuilder.getCurrentSection().getHeadersFooters().getByHeaderFooterType(headerFooterType.HEADER_EVEN);
if (fbuilderfooter != null) {
if (currFooter == null) {
// There is no header of the specified type in the current section, create it.
currFooter = new HeaderFooter(destBuilder.getDocument(), headerFooterType.HEADER_EVEN);
section.getHeadersFooters().add(currFooter);
}
currFooter.removeAllChildren();
for (var i2 = fbuilderfooter.getChildNodes(NodeType.ANY, false).getCount() - 1; i2 >= 0; i2--) {
var node = fbuilderfooter.getChildNodes(NodeType.ANY, false).get(i2);
var importnode = destBuilder.getDocument().importNode(node, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
currFooter.prependChild(importnode);
}
}
}
}
if (!firstPageOnlyFooter) {
if (isFooter) {
var currFooter = section.getHeadersFooters().getByHeaderFooterType(headerFooterType.FOOTER_EVEN);
fbuilderfooter = sourceBuilder.getCurrentSection().getHeadersFooters().getByHeaderFooterType(headerFooterType.FOOTER_EVEN);
if (fbuilderfooter != null) {
if (currFooter == null) {
// There is no header of the specified type in the current section, create it.
currFooter = new HeaderFooter(destBuilder.getDocument(), headerFooterType.FOOTER_EVEN);
section.getHeadersFooters().add(currFooter);
}
currFooter.removeAllChildren();
for (var i2 = fbuilderfooter.getChildNodes(NodeType.ANY, false).getCount() - 1; i2 >= 0; i2--) {
var node = fbuilderfooter.getChildNodes(NodeType.ANY, false).get(i2);
var importnode = destBuilder.getDocument().importNode(node, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);
currFooter.prependChild(importnode);
}
}
}
}
}
}
return;
}
