In this blog, you will learn how to add headers and footers in a Word document in Java applications.
Contents Summary:
- Add text to header
- Add image to header
- Add page numbers to footer
The following example uses a free Java API - Free Spire.Doc for Java to achieve the above functionalities.
First of all, you need to add needed dependencies for including Free Spire.Doc for Java into your Java project. There are two ways to do that.
If you use maven, you need to add the following code to your project’s pom.xml file.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc.free</artifactId>
<version>2.7.3</version>
</dependency>
</dependencies>
For non-maven projects, download Free Spire.Doc for Java pack from this website and add Spire.Doc.jar in the lib folder into your project as a dependency.
Using the code
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange;
import java.awt.*;
public class AddHeaderAndFooter {
public static void main(String[] args) throws Exception {
//load a Word document
Document doc= new Document("Input.docx");
//get the first section
Section sec = doc.getSections().get(0);
//call AddHeaderFooter method to add header and footer to the document
AddHeaderFooter(sec);
//save the result document
doc.saveToFile("AddHeaderFooter.docx");
}
//create a method to add image, text to header and page number to footer
private static void AddHeaderFooter(Section sec){
//add image to header
HeaderFooter header = sec.getHeadersFooters().getHeader();
Paragraph hpara= header.addParagraph();
DocPicture pic =hpara.appendPicture("logo.jpg");
pic.setWidth(50);
pic.setHeight(30);
pic.setHorizontalAlignment(ShapeHorizontalAlignment.Left);
pic.setVerticalOrigin(VerticalOrigin.Top_Margin_Area);
pic.setVerticalAlignment(ShapeVerticalAlignment.Center);
pic.setTextWrappingStyle(TextWrappingStyle.Behind);
//add text to header
TextRange txt = hpara.appendText("Text Header");
txt.getCharacterFormat().setUnderlineStyle(UnderlineStyle.None);
txt.getCharacterFormat().setTextColor(Color.GRAY);
txt.getCharacterFormat().setFontName("Calibri");
txt.getCharacterFormat().setFontSize(12f);
txt.getCharacterFormat().setBold(true);
hpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
//set bottom border for header
hpara.getFormat().getBorders().getBottom().setBorderType(BorderStyle.Single);
hpara.getFormat().getBorders().getBottom().setLineWidth(0.5f);
hpara.getFormat().getBorders().setSpace(2f);
//add page number to footer
HeaderFooter footer = sec.getHeadersFooters().getFooter();
Paragraph fpara= footer.addParagraph();
fpara.appendField("page",FieldType.Field_Page);
fpara.appendText(" of ");
fpara.appendField("number of pages",FieldType.Field_Num_Pages);
//set alignment and top boder for footer
fpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
fpara.getFormat().getBorders().getTop().setBorderType(BorderStyle.Single);
fpara.getFormat().getBorders().getTop().setLineWidth(1f);
fpara.getFormat().getBorders().getTop().setSpace(2f);
}
}
Output:
Comments
Post a Comment