在Word文檔中桨吊,頁眉位于文檔中每個頁面的頂部區(qū)域威根,而頁腳則位于文檔中每個頁面的底部區(qū)域。它們都常用于顯示文檔的附加信息视乐,例如時間洛搀、公司微標、文件名或作者姓名等佑淀。本文將通過使用Java程序來演示如何在Word文檔中添加頁眉和頁腳留美。主要包括:添加文本、圖片和頁碼至頁眉伸刃、頁腳谎砾;設置奇偶頁頁眉頁腳不同;設置首頁頁眉頁腳不同捧颅;鎖定頁眉頁腳景图。
使用工具:Free Spire.Doc for Java(免費版)
Jar文件獲取及導入:
方法1:通過官方網(wǎng)站下載獲取jar包。解壓后將lib文件夾下的Spire.Doc.jar文件導入Java程序隘道。(如下圖)
方法2:通過maven倉庫安裝導入症歇。具體安裝詳情參見此網(wǎng)頁。
【示例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 AddHeaderAndFooter {
public static void main(String[]args) {
//加載需要添加頁眉頁腳的文檔
??????? Document doc= new Document("D:\\Desktop\\Sample.docx");
??????? Section sec = doc.getSections().get(0);????????
//調(diào)用方法添加頁眉頁腳
??????? AddHeaderFooter(sec);????????
//保存文檔
? ? ?? doc.saveToFile("output/AddHeaderFooter.docx");??? }
//自定義方法來添加圖片激捏、文字頁眉及頁碼
??????? private static void AddHeaderFooter(Sectionsec){
//加載圖片添加到頁眉设塔,并設置圖片在段落中的對齊方式
??????? HeaderFooter header = sec.getHeadersFooters().getHeader();
??????? Paragraph hpara=header.addParagraph();
??????? DocPicture pic=hpara.appendPicture("D:\\Desktop\\Image.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);
//設置圖片的文本環(huán)繞方式图柏、頁眉底部邊線(粗細序六、間距)
??????? 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("總頁數(shù)",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("D:\\Desktop\\Sample.docx");
??????? Section sec = doc.getSections().get(0);
//設置奇偶頁頁眉頁腳不同
? ? ?? sec.getPageSetup().setDifferentOddAndEvenPagesHeaderFooter(true);
//設置奇數(shù)頁頁眉頁腳
??????? HeaderFooter oddheader = sec.getHeadersFooters().getOddHeader();
??????? Paragraph para1 = oddheader.addParagraph();
??????? TextRange textRange1 = para1.appendText("奇數(shù)頁頁眉");
??????? 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("奇數(shù)頁頁腳");
??????? para2.getFormat().setHorizontalAlignment(HorizontalAlignment.Left);
??????? textRange2.getCharacterFormat().setTextColor(Color.ORANGE);
??????? textRange2.getCharacterFormat().setBold(true);
//設置偶數(shù)頁頁眉頁腳
??????? HeaderFooter evenheader = sec.getHeadersFooters().getEvenHeader();
??????? Paragraph para3 = evenheader.addParagraph();
??????? TextRange textRange3 = para3.appendText("偶數(shù)頁頁眉");
??????? 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("偶數(shù)頁頁腳");
??????? para4.getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
??????? textRange4.getCharacterFormat().setTextColor(Color.BLUE);
??????? textRange4.getCharacterFormat().setBold(true);
//保存文檔
??????? doc.saveToFile("output/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("D:\\Desktop\\Sample.docx");
? ? Section sec =doc.getSections().get(0);
//設置首頁頁眉頁腳不同
??????? sec.getPageSetup().setDifferentFirstPageHeaderFooter(true);
//添加首頁頁眉頁腳
??????? HeaderFooterfirstpageheader = 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);
//添加頁眉頁腳到其他頁面
??????? Paragraphpara3 = 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("output/result2.docx",FileFormat.Docx_2010);
??? }
}
頁眉頁腳設置效果:
【示例4】鎖定頁眉頁腳
import com.spire.doc.*;
public class LockHeaderFooter {
public static void main(String[] args) {
//加載測試文檔
??????? Document doc = new Document("D:\\Desktop\\result2.docx");
//獲取第一節(jié)
??????? Section sec = doc.getSections().get(0);
// 設置保護類型及密碼
??????? doc.protect(ProtectionType.Allow_Only_Form_Fields,"123");
??????? sec.setProtectForm(false);
//保存文檔
??????? doc.saveToFile("output/LockHeaderFooter.docx",FileFormat.Docx_2010);
??? }
}
鎖定頁眉頁腳后裁着,文檔除頁眉頁腳外其他內(nèi)容依舊可進行編輯繁涂。
(本文完)