本篇文章將介紹通過java程序來添加Word頁眉頁腳的方法。鑑於在不同文檔中,對頁眉頁腳的操作要求不同,文章將分別從以下幾種情況來闡述:
1.添加頁眉頁腳
- 添加圖片到頁眉
- 添加文本到頁眉
- 添加頁碼
2.設置奇偶頁不同的頁眉頁腳
3.設置首頁頁眉頁腳不同
4.不連續設置頁碼(即對不同章節的內容設置不同頁碼)
5.鎖定頁眉頁腳(不可編輯頁眉頁腳)
6.刪除頁眉頁腳
- 刪除全部頁眉頁腳
- 刪除首頁頁眉頁腳
使用工具:Free Spire.Doc for Java
方法一:直接獲取文件包裏的jar文件,導入到程序(需要先下載文件包)。
方法二:通過Maven導入到程序。
【示例1】添加頁眉頁腳(文本、圖片、頁碼)
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 AddHeaderFooter {
public static void main(String[]args){
//加載需要添加頁眉頁腳的文檔
Document doc= new Document("test.docx");
Section sec = doc.getSections().get(0);
//調用方法添加頁眉頁腳
AddHeaderFooter(sec);
//保存文檔
doc.saveToFile("AddHeaderFooter.docx");
}
//自定義方法來添加圖片、文字頁眉及頁碼
private static void AddHeaderFooter(Section sec){
//加載圖片添加到頁眉,並設置圖片在段落中的對齊方式
HeaderFooter header = sec.getHeadersFooters().getHeader();
Paragraph hpara= header.addParagraph();
DocPicture pic =hpara.appendPicture("1.png");
pic.setHorizontalAlignment(ShapeHorizontalAlignment.Left);
pic.setVerticalOrigin(VerticalOrigin.Top_Margin_Area);
pic.setVerticalAlignment(ShapeVerticalAlignment.Center);
//添加文字到頁眉,並設置字體、字號、字體加粗、對齊方式
TextRange txt = hpara.appendText("青年時報");
txt.getCharacterFormat().setUnderlineStyle(UnderlineStyle.None);
txt.getCharacterFormat().setTextColor(Color.GRAY);
txt.getCharacterFormat().setFontName("仿宋");
txt.getCharacterFormat().setFontSize(12f);
txt.getCharacterFormat().setBold(true);
hpara.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
//設置圖片的文本環繞方式、頁眉底部邊線(粗細、間距)
pic.setTextWrappingStyle(TextWrappingStyle.Behind);
hpara.getFormat().getBorders().getBottom().setBorderType(BorderStyle.Single);
hpara.getFormat().getBorders().getBottom().setLineWidth(0.5f);
hpara.getFormat().getBorders().setSpace(2f);
//添加頁碼到頁腳,並設置頁腳對齊方式,頂部邊線粗細、間距
HeaderFooter footer = sec.getHeadersFooters().getFooter();
Paragraph fpara= footer.addParagraph();
fpara.appendField("頁碼",FieldType.Field_Page);
fpara.appendText("/");
fpara.appendField("總頁數",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);
}
}
頁眉頁腳添加效果:
【示例2】設置奇偶頁頁眉頁腳不同
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");
}
}
刪除效果前後對比:
2. 刪除首頁頁眉頁腳
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);
}
}
首頁頁眉頁腳刪除效果:
(本文完)
轉載請註明出處!!