We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

BorderSurround is not respecting BorderAppliesTo

Hello,

With playing with borders I notice issue it looks like setBorderSurroundsHeader/setBorderSurroundsFooter are not isolated when we set setBorderAppliesTo(PageBorderAppliesTo.ALL_PAGES)
I would expect that all properties related to page borders are isolated to specific section here is example code which reproduce this problem:

Document doc1 = new Document();
DocumentBuilder documentBuilder = new DocumentBuilder(doc1);
PageSetup pageSetup = documentBuilder.getCurrentSection().getPageSetup();
pageSetup.setBorderAppliesTo(PageBorderAppliesTo.ALL_PAGES);
pageSetup.setBorderDistanceFrom(PageBorderDistanceFrom.TEXT);
pageSetup.setBorderSurroundsHeader(true);
pageSetup.setBorderSurroundsFooter(true);
pageSetup.getBorders().setLineStyle(LineStyle.DOUBLE);
pageSetup.getBorders().getTop().setDistanceFromText(1);
pageSetup.getBorders().getLeft().setDistanceFromText(1);
pageSetup.getBorders().getRight().setDistanceFromText(1);
pageSetup.getBorders().getBottom().setDistanceFromText(1);
documentBuilder.writeln("Content");
documentBuilder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);
documentBuilder.writeln("Header");
documentBuilder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
documentBuilder.writeln("Footer");
doc1.getSections().add(new Section(doc1));
documentBuilder.moveToSection(1);
PageSetup pageSetup2 = documentBuilder.getCurrentSection().getPageSetup();
pageSetup2.setBorderAppliesTo(PageBorderAppliesTo.ALL_PAGES);
pageSetup2.setBorderDistanceFrom(PageBorderDistanceFrom.TEXT);
pageSetup.setBorderSurroundsHeader(false);
pageSetup.setBorderSurroundsFooter(false);
pageSetup2.getBorders().setLineStyle(LineStyle.DOUBLE);
pageSetup2.getBorders().getTop().setDistanceFromText(10);
pageSetup2.getBorders().getLeft().setDistanceFromText(10);
pageSetup2.getBorders().getRight().setDistanceFromText(10);
pageSetup2.getBorders().getBottom().setDistanceFromText(10);
documentBuilder.writeln("Content");
documentBuilder.moveToHeaderFooter(HeaderFooterType.HEADER_PRIMARY);
documentBuilder.writeln("Header");
documentBuilder.moveToHeaderFooter(HeaderFooterType.FOOTER_PRIMARY);
documentBuilder.writeln("Footer");
doc1.save("a.docx");

I expect that first section has header/footer surrounded and second is not.

I checked on version 22.10 and 23.1 and results is the same.

@ANDREA.FARRIS BorderSurroundsHeader and BorderSurroundsFooter options are specified a whole document, not per section. They are written into the DOCX document in settings.xml as:

<w:bordersDoNotSurroundHeader />
<w:bordersDoNotSurroundFooter />

So, unfortunately, there is no way to have these properties set per section. This is a limitation of MS Word formats.