簡體   English   中英

使用apache poi在.docx的標題中添加頁碼

[英]Add a page number in header in .docx using apache poi

我的.docx文檔中有一個文本標題,該標題與左側對齊。 我想在頁眉的右側添加頁碼,例如“ Page 1”,“ Page 2”等。我正在使用Apache POI進行相同操作,是否有任何可能的方法來進行操作。我正在使用下面的代碼添加左對齊的標題-

XWPFDocument document = new XWPFDocument();         
CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);   
//write header content
CTP ctpHeader = CTP.Factory.newInstance();
CTR ctrHeader = ctpHeader.addNewR();
CTText ctHeader = ctrHeader.addNewT();
String headerText = "This is a header";
ctHeader.setStringValue(headerText);    
XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
XWPFParagraph[] parsHeader = new XWPFParagraph[1];
parsHeader[0] = headerParagraph;
policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);`

請幫助我解決這個問題。

問題已解決。 現在,我可以在標題中添加右對齊的頁碼。

我已經使用以下鏈接作為參考-Apache POI如何添加頁碼

下面的代碼現在對我來說很好用-

        XWPFDocument document = new XWPFDocument();

        CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
        XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);

        //write header content
        CTP ctpHeader = CTP.Factory.newInstance();
        CTR ctrHeader = ctpHeader.addNewR();
        CTText ctHeader = ctrHeader.addNewT();
        String headerText = "FISHER SCIENTIFIC COMPANY L.L.C. DISTRIBUTION AGREEMENT";
        ctHeader.setStringValue(headerText);    

        //write page number header
        CTP ctpHeaderPage = CTP.Factory.newInstance();
        CTPPr ctppr = ctpHeaderPage.addNewPPr();
        CTString pst = ctppr.addNewPStyle();
        pst.setVal("style21");
        CTJc ctjc = ctppr.addNewJc();
        ctjc.setVal(STJc.RIGHT);
        ctppr.addNewRPr();
        CTR ctr = ctpHeaderPage.addNewR();
        ctr.addNewRPr();
        CTFldChar fch = ctr.addNewFldChar();
        fch.setFldCharType(STFldCharType.BEGIN);

        ctr = ctpHeaderPage.addNewR();
        ctr.addNewInstrText().setStringValue(" PAGE ");

        ctpHeaderPage.addNewR().addNewFldChar().setFldCharType(STFldCharType.SEPARATE);

        ctpHeaderPage.addNewR().addNewT().setStringValue("1");

        ctpHeaderPage.addNewR().addNewFldChar().setFldCharType(STFldCharType.END);

        XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
        XWPFParagraph headerParagraphPage = new XWPFParagraph(ctpHeader, document);
        XWPFParagraph[] parsHeader = new XWPFParagraph[2];
        parsHeader[0] = headerParagraph;
        parsHeader[1] = headerParagraphPage;
        policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM