Java 添加Word頁眉炊昆、頁腳

在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)容依舊可進行編輯繁涂。

(本文完)

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市二驰,隨后出現(xiàn)的幾起案子扔罪,更是在濱河造成了極大的恐慌,老刑警劉巖桶雀,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矿酵,死亡現(xiàn)場離奇詭異唬复,居然都是意外死亡,警方通過查閱死者的電腦和手機坏瘩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門盅抚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倔矾,你說我怎么就攤上這事≈拢” “怎么了哪自?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長禁熏。 經(jīng)常有香客問我壤巷,道長,這世上最難降的妖魔是什么瞧毙? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任胧华,我火速辦了婚禮,結果婚禮上宙彪,老公的妹妹穿的比我還像新娘矩动。我一直安慰自己,他們只是感情好释漆,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布悲没。 她就那樣靜靜地躺著,像睡著了一般男图。 火紅的嫁衣襯著肌膚如雪示姿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天逊笆,我揣著相機與錄音栈戳,去河邊找鬼。 笑死难裆,一個胖子當著我的面吹牛子檀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播差牛,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼命锄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了偏化?” 一聲冷哼從身側響起脐恩,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎侦讨,沒想到半個月后驶冒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苟翻,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年骗污,在試婚紗的時候發(fā)現(xiàn)自己被綠了崇猫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡需忿,死狀恐怖诅炉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屋厘,我是刑警寧澤涕烧,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站汗洒,受9級特大地震影響议纯,放射性物質發(fā)生泄漏。R本人自食惡果不足惜溢谤,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一瞻凤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧世杀,春花似錦阀参、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至湿镀,卻和暖如春炕吸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背勉痴。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工赫模, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蒸矛。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓瀑罗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親雏掠。 傳聞我的和親對象是個殘疾皇子斩祭,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 頁眉和頁腳通常是顯示文檔的附加信息,常用來插入頁碼乡话、時間摧玫、日期、個人信息绑青、微標等诬像。特別是其中插入的頁碼屋群,通...
    Tina_Tang閱讀 1,970評論 0 1
  • 表格作為一種可視化交流模式及組織整理數(shù)據(jù)的手段,在各種場合及文檔中應用廣泛坏挠。常見的表格可包含文字芍躏、圖片等元素,我們...
    編程小世界閱讀 1,418評論 0 0
  • Word 2003長篇文檔排版技巧(一) 重點總結為兩點: 1. 制作長文檔前降狠,先要規(guī)劃好各種設置对竣,尤其是樣式設置...
    MrSunbeam閱讀 1,992評論 0 12
  • 批注芥牌,是作者或審閱者給文檔添加的注釋或注解。通過查看批注聂使,可以更加詳細地了解某些文字的背景壁拉。除添加文本信息到...
    Tina_Tang閱讀 1,833評論 0 2
  • 燈火寂寥,寒風撫耳柏靶,漫夜何曉弃理?孤人遺影為伴,濃茶筆桿亦友屎蜓。榻上輾轉反側痘昌,然咎由自取。然追問炬转,事隔經(jīng)年辆苔,僅留...
    無用的銫閱讀 411評論 0 3