apache poi - How to set header and Footer position in poi word (XWPF)? -
i want set header , footer's position. header top: 45.4 pt, footer bottom: 28.4 pt can see in header & footer tools menu when open word file. in advance! 
for need setting page margins. need org.openxmlformats.schemas.wordprocessingml.x2006.main.ctpagemar. , using need ooxml-schemas-1.3.jar mentioned in https://poi.apache.org/faq.html#faq-n10025.
example:
import java.io.*; import org.apache.poi.xwpf.usermodel.*; import org.apache.poi.xwpf.model.xwpfheaderfooterpolicy; import org.openxmlformats.schemas.wordprocessingml.x2006.main.ctsectpr; import org.openxmlformats.schemas.wordprocessingml.x2006.main.ctpagemar; import java.math.biginteger; public class createwordheaderfootertopbottom { public static void main(string[] args) throws exception { xwpfdocument document = new xwpfdocument(); // create header-footer xwpfheaderfooterpolicy headerfooterpolicy = document.getheaderfooterpolicy(); if (headerfooterpolicy == null) headerfooterpolicy = document.createheaderfooterpolicy(); // create header start xwpfheader header = headerfooterpolicy.createheader(xwpfheaderfooterpolicy.default); xwpfparagraph paragraph = header.createparagraph(); paragraph.setalignment(paragraphalignment.center); xwpfrun run = paragraph.createrun(); run.settext("header"); // create footer start xwpffooter footer = headerfooterpolicy.createfooter(xwpfheaderfooterpolicy.default); paragraph = footer.createparagraph(); paragraph.setalignment(paragraphalignment.center); run = paragraph.createrun(); run.settext("footer"); ctsectpr sectpr = document.getdocument().getbody().getsectpr(); if (sectpr == null) sectpr = document.getdocument().getbody().addnewsectpr(); ctpagemar pagemar = sectpr.getpgmar(); if (pagemar == null) pagemar = sectpr.addnewpgmar(); pagemar.setleft(biginteger.valueof(720)); //720 twentieths of inch point (twips) = 720/20 = 36 pt = 36/72 = 0.5" pagemar.setright(biginteger.valueof(720)); pagemar.settop(biginteger.valueof(1440)); //1440 twips = 1440/20 = 72 pt = 72/72 = 1" pagemar.setbottom(biginteger.valueof(1440)); pagemar.setheader(biginteger.valueof(908)); //45.4 pt * 20 = 908 = 45.4 pt header top pagemar.setfooter(biginteger.valueof(568)); //28.4 pt * 20 = 568 = 28.4 pt footer bottom document.write(new fileoutputstream("createwordheaderfootertopbottom.docx")); document.close(); } } note special measurement unit twip = twentieths of inch point.
Comments
Post a Comment