Java Word add headers, footers,

This article describes methods to add headers and footers Word through java program. Given the different documents, different operational requirements for headers and footers, respectively, to illustrate the article from the following situations:

1. Add headers and footers

  •    Add a picture into the header
  •    Add text to the header
  •    Add page

2. Set different page header and footer parity

3. Set the page header different footer

4. Set page discontinuous (i.e., different page provided on different sections of content)

5. Lock header and footer (not edit headers and footers)

6. Delete the header and footer

  •    Remove all headers and footers
  •    Delete page header footer

 

Use tools: as Free Spire.Doc for the Java

Method One: direct access to file bag jar file, imported into the program (you need to download the package).

Method two: by Maven imported into the program.

 

[Example 1] add headers and footers (text, images, page)

Import com.spire.doc *. ;
 Import com.spire.doc.documents *. ;
 Import com.spire.doc.fields.DocPicture;
 Import com.spire.doc.fields.TextRange;
 Import in java.awt *. ; 

public  class AddHeaderFooter {
     public  static  void main (String [] args) {
         // load the need to add headers and footers documents 
        the document DOC = new new the document ( "Test.docx" ); 
        Section sec . = doc.getSections () GET (0 ); 

        // call the method to add headers and footers 
        AddHeaderFooter (sec); 

        // save the document
        doc.saveToFile ( "AddHeaderFooter.docx" ); 
    } 
    // custom method to add pictures, text and page header 
    Private  static  void AddHeaderFooter (Section sec) {
         // Load picture to the header, and picture provided in the paragraph alignment 
        the HeaderFooter header = sec.getHeadersFooters () getHeader ();. 
        the Paragraph hpara = header.addParagraph (); 
        DocPicture PIC = hpara.appendPicture ( "1.png" ); 
        pic.setHorizontalAlignment (ShapeHorizontalAlignment.Left); 
        PIC. setVerticalOrigin (VerticalOrigin.Top_Margin_Area); 
        pic.setVerticalAlignment (ShapeVerticalAlignment.Center); 
        // add text to the header, and set the font, font size, font bold, alignment
        TextRange txt = hpara.appendText ( "Youth Times" ); 
        txt.getCharacterFormat () setUnderlineStyle (UnderlineStyle.None);. 
        Txt.getCharacterFormat () SetTextColor (Color.GRAY);. 
        . Txt.getCharacterFormat () setFontName ( "italics" ); 
        txt.getCharacterFormat () setFontSize (12f);. 
        txt.getCharacterFormat () setBold (. to true ); 
        hpara.getFormat () setHorizontalAlignment (HorizontalAlignment.Right);. 
        // set the text wraps picture, the bottom edge header (thickness, pitch) 
        pic.setTextWrappingStyle (TextWrappingStyle.Behind);  
        hpara.getFormat () getBorders () getBottom () setBorderType (BorderStyle.Single)...;
        hpara.getFormat () getBorders () getBottom () setLineWidth (... 0.5f ); 
        hpara.getFormat () getBorders () setSpace (. 2F);.. 

        // add page numbers to the footer, and footer set alignment, the top edge thickness, spacing 
        The HeaderFooter footer = sec.getHeadersFooters () getFooter ();. 
        the Paragraph fpara = footer.addParagraph (); 
        fpara.appendField ( "page" , FieldType.Field_Page); 
        fpara.appendText ( "/" ); 
        fpara.appendField ( "total number of pages" , FieldType.Field_Num_Pages); 
        fpara.getFormat () setHorizontalAlignment (HorizontalAlignment.Right);. 
        fpara.getFormat () getBorders () getTop () setBorderType (BorderStyle.Single)...;
        fpara.getFormat (). getBorders (). getTop (). setLineWidth (1f); 
        fpara.getFormat (). getBorders (). getTop (). setSpace (2f); 
    } 
}

Header and footer add effects:

 

[Example 2 ] to set different odd and even page headers and footers

import com.spire.doc.*;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextRange;

import java.awt.*;

public class HeaderFooterForOddAndEvenPages {
    public static void main(String[] args){
        //加载测试文档
        Document doc = new Document("test.docx");
        Section sec = doc.getSections().get(0);

        //设置奇偶页页眉页脚不同
        sec.getPageSetup().setDifferentOddAndEvenPagesHeaderFooter(true);

        //设置奇数页页眉页脚
        HeaderFooter oddheader = sec.getHeadersFooters().getOddHeader();
        Paragraph para1 = oddheader.addParagraph();
        TextRange textRange1 = para1.appendText("奇数页页眉");
        para1.getFormat().setHorizontalAlignment(HorizontalAlignment.Left);
        textRange1.getCharacterFormat().setTextColor(Color.ORANGE);
        textRange1.getCharacterFormat().setBold(true);
        HeaderFooter oddfooter = sec.getHeadersFooters().getFooter();
        Paragraph para2 = oddfooter.addParagraph();
        TextRange textRange2 = para2.appendText("奇数页页脚");
        para2.getFormat().setHorizontalAlignment(HorizontalAlignment.Left);
        textRange2.getCharacterFormat().setTextColor(Color.ORANGE);
        textRange2.getCharacterFormat().setBold(true);

        //设置偶数页页眉页脚
        HeaderFooter evenheader = sec.getHeadersFooters().getEvenHeader();
        Paragraph para3 = evenheader.addParagraph();
        TextRange textRange3 = para3.appendText("偶数页页眉");
        para3.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
        textRange3.getCharacterFormat().setTextColor(Color.BLUE);
        textRange3.getCharacterFormat().setBold(true);
        HeaderFooter evenfooter = sec.getHeadersFooters().getEvenFooter();
        Paragraph para4 = evenfooter.addParagraph();
        TextRange textRange4 = para4.appendText("偶数页页脚");
        para4.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
        textRange4.getCharacterFormat().setTextColor(Color.BLUE);
        textRange4.getCharacterFormat().setBold(true);

        //保存文档
        doc.saveToFile("result.docx",FileFormat.Docx_2010);
    }

}
奇偶数页眉页脚设置效果:

 

【示例3】设置首页页眉页脚不同

import com.spire.doc.*;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextRange;

import java.awt.*;

public class HeaderFooterDifferentFromFirstPage {
    public static void main(String[] args){
        //加载测试文的
        Document doc = new Document("test.docx");
        Section sec = doc.getSections().get(0);

        //设置首页页眉页脚不同
        sec.getPageSetup().setDifferentFirstPageHeaderFooter(true);

        //添加首页页眉页脚
        HeaderFooter firstpageheader = sec.getHeadersFooters().getFirstPageHeader();
        Paragraph para1 = firstpageheader.addParagraph();
        TextRange textRange1 = para1.appendText("首页页眉");
        para1.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        textRange1.getCharacterFormat().setBold(true);
        textRange1.getCharacterFormat().setTextColor(Color.GREEN);
        HeaderFooter firstpagefooter = sec.getHeadersFooters().getFirstPageFooter();
        Paragraph para2 = firstpagefooter.addParagraph();
        TextRange textRange2 = para2.appendText("首页页脚");
        para2.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        textRange2.getCharacterFormat().setBold(true);
        textRange2.getCharacterFormat().setTextColor(Color.GREEN);


        //添加页眉页脚到其他页面
        Paragraph para3 = sec.getHeadersFooters().getHeader().addParagraph();
        para3.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        TextRange textRange3 = para3.appendText("非首页页眉");
        textRange3.getCharacterFormat().setBold(true);
        Paragraph para4 = sec.getHeadersFooters().getFooter().addParagraph();
        para4.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        TextRange textRange4 = para4.appendText("非首页页脚");
        textRange4.getCharacterFormat().setBold(true);

        //保存文档
        doc.saveToFile("result2.docx",FileFormat.Docx_2010);
    }
}

页眉页脚设置效果:

 

【示例4】不连续设置页码

import com.spire.doc.*;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.PageNumberStyle;
import com.spire.doc.documents.Paragraph;

public class DifferentPageNumber {
    public static void main(String[]args){
        //加载测试文档
        Document doc = new  Document("test.docx");

        //添加页码到第一节
        HeaderFooter footer= doc.getSections().get(0).getHeadersFooters().getFooter();
        Paragraph footerpara = footer.addParagraph();
        footerpara.appendField("Page Number",FieldType.Field_Page);
        footerpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
        //设置第一节页码数字格式为罗马数字
        doc.getSections().get(0).getPageSetup().setPageNumberStyle(PageNumberStyle.Roman_Lower);

        //设置第二节页码数字格式为阿拉伯数字
        doc.getSections().get(1).getPageSetup().setPageNumberStyle(PageNumberStyle.Arabic);
        //设置第二节页码从新开始编码,并设置起始页码数字
        doc.getSections().get(1).getPageSetup().setRestartPageNumbering(true);
        doc.getSections().get(1).getPageSetup().setPageStartingNumber(1);

        //保存文档
        doc.saveToFile("restartnumbering.docx",FileFormat.Docx_2010);
    }
}

页码设置效果:

 

【示例5】锁定页眉页脚

import com.spire.doc.*;

public class LockHeaderFooter {
    public static void main(String[]args){
       //加载测试文档
        Document doc = new Document("sample.docx");

        //获取第一节
        Section sec = doc.getSections().get(0);

        //设置保护类型及密码
        doc.protect(ProtectionType.Allow_Only_Form_Fields,"123");
        sec.setProtectForm(false);

        //保存文档
        doc.saveToFile("LockHeaderFooter.docx",FileFormat.Docx_2010);
    }
}

锁定页眉页脚后,文档中除页眉页脚外其他内容可正常编辑。

【示例6】删除页眉页脚

  •   删除所有页眉页脚

    import com.spire.doc.*;
    
    public class DeleteAllHeaderFooter {
        public static void main(String[]args){
            //加载测试文档
            Document doc = new Document("sample.docx");
            //获取第一节
            Section sec = doc.getSections().get(0);
    
            //删除页眉
            sec.getHeadersFooters().getHeader().getChildObjects().clear();
    
            //删除页脚
            sec.getHeadersFooters().getFooter().getChildObjects().clear();
    
            //保存文档
            doc.saveToFile("DeleteAllHeaderFooter.docx");
        }
    }

删除效果前后对比:

 

  • 删除首页页眉页脚

import com.spire.doc.*;

public class DeleteHeaderFooterOfFirstPage {
    public static void main(String[]args){
        //加载测试文档
        Document doc = new Document("sample.docx");
        //获取第一节
        Section sec = doc.getSections().get(0);

        //设置首页页眉页脚不同
        sec.getPageSetup().setDifferentFirstPageHeaderFooter(true);

        //删除首页页眉页脚
        sec.getHeadersFooters().getFirstPageHeader().getChildObjects().clear();
        sec.getHeadersFooters().getFirstPageFooter().getChildObjects().clear();

        //保存文档
        doc.saveToFile("DeleteHeaderFooterOfFirstPage.docx",FileFormat.Docx_2010);
    }
}

首页页眉页脚删除效果:

 

(本文完)

转载请注明出处!

 

Guess you like

Origin www.cnblogs.com/Yesi/p/11010805.html