Java 添加頁(yè)碼到Word文檔

前言

在操作Word文檔時(shí),可以通過(guò)添加頁(yè)碼來(lái)使其條理清晰负乡,以便于后期查看整理榜田。通常來(lái)說(shuō)益兄,一個(gè)Word文檔包含了多個(gè)節(jié),我們可以忽視這些節(jié)為整個(gè)文檔添加連續(xù)頁(yè)碼箭券,同時(shí)也可以根據(jù)不同節(jié)來(lái)設(shè)置不連續(xù)頁(yè)碼净捅。本文將通過(guò)使用Java程序來(lái)演示以上兩種添加頁(yè)碼情況。

測(cè)試環(huán)境搭建

在運(yùn)行代碼前辩块,請(qǐng)確保你的電腦上安裝有JDK和Intellij IDEA灸叼。同時(shí)需要導(dǎo)入Spire.Doc.jar包。導(dǎo)入方式有兩種:其一庆捺,在官網(wǎng)上下載獲取Free Spire.Doc for Java產(chǎn)品包古今,解壓后將lib文件夾下的Spire.Doc.jar手動(dòng)導(dǎo)入到IDEA。其二滔以,在IDEA中創(chuàng)建一個(gè)Maven項(xiàng)目捉腥,然后在pom.xml文件中鍵入以下代碼,最后點(diǎn)擊“Import Changes”即可你画。

<repositories>

?????? ?<repository>

?????????? ?<id>com.e-iceblue</id>

???????????<url>http://repo.e-iceblue.cn/repository/maven-public/</url>

?????? ?</repository>

?? ?</repositories>

<dependencies>

?? ?<dependency>

?????? ?<groupId>e-iceblue</groupId>

?????? ?<artifactId>spire.doc.free</artifactId>

?????? ?<version>3.9.1</version>

?? ?</dependency>

</dependencies>

代碼示例

【示例1】添加連續(xù)的頁(yè)碼到文檔

默認(rèn)情況下抵碟,當(dāng)我們添加頁(yè)碼到第一節(jié)的頁(yè)眉或頁(yè)腳后,其他節(jié)會(huì)通過(guò)鏈接到前一節(jié)來(lái)使用相同的頁(yè)眉或頁(yè)腳坏匪。因此拟逮,我們只需要在第一節(jié)中設(shè)置頁(yè)碼即可。

import com.spire.doc.Document;

import com.spire.doc.FieldType;

import com.spire.doc.FileFormat;

import com.spire.doc.HeaderFooter;

import com.spire.doc.documents.HorizontalAlignment;

import com.spire.doc.documents.Paragraph;

public class AddContinuousNumber {

public static void main(String[] args) {

//加載Word文檔

Document document = new Document("C:\\Users\\Test1\\Desktop\\Sample.docx");

//獲取第一個(gè)節(jié)中的頁(yè)腳

HeaderFooter footer = document.getSections().get(0).getHeadersFooters().getFooter();

//添加段落到頁(yè)腳

Paragraph footerParagraph =footer.addParagraph();

//添加文字适滓、頁(yè)碼域和總頁(yè)數(shù)域到段落

footerParagraph.appendText("第");

footerParagraph.appendField("page number", FieldType.Field_Page);

footerParagraph.appendText("頁(yè)共");

footerParagraph.appendField("number of pages", FieldType.Field_Num_Pages);

footerParagraph.appendText("頁(yè)");

//將段落居中

footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);

//保存文檔

document.saveToFile("output/AddPageNumber.docx", FileFormat.Docx_2013);

??? }

}

效果圖:

【示例2】根據(jù)節(jié)來(lái)添加不連續(xù)的頁(yè)碼

Free Spire.Doc for Java除了支持給Word文檔設(shè)置連續(xù)頁(yè)碼外敦迄,還可以根據(jù)文檔中的節(jié)來(lái)設(shè)置不連續(xù)頁(yè)碼,即下一節(jié)的起始頁(yè)從1開始編頁(yè)碼凭迹。

import com.spire.doc.Document;

import com.spire.doc.FieldType;

import com.spire.doc.FileFormat;

import com.spire.doc.HeaderFooter;

import com.spire.doc.documents.HorizontalAlignment;

import com.spire.doc.documents.Paragraph;

public class AddDiscontinuousNumber {

public static void main(String[] args) {

//加載Word文檔

Document document = new Document("C:\\Users\\Test1\\Desktop\\Sample.docx");

//獲取第一節(jié)的頁(yè)腳

HeaderFooter footer = document.getSections().get(0).getHeadersFooters().getFooter();

//添加段落到頁(yè)腳

Paragraph footerParagraph = footer.addParagraph();

//添加文本罚屋、節(jié)域、頁(yè)碼域到段落

footerParagraph.appendText("第");

footerParagraph.appendField("section number", FieldType.Field_Section);

footerParagraph.appendText("節(jié) 第");

footerParagraph.appendField("page number", FieldType.Field_Page);

footerParagraph.appendText("頁(yè)");

//將段落居中

footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);

//判斷文檔是否含多個(gè)節(jié)

if (document.getSections().getCount()>1) {

//遍歷除第一節(jié)以外的其他節(jié)

for (int i = 1; i < document.getSections().getCount(); i++) {

//在當(dāng)前節(jié)重新開始編頁(yè)碼document.getSections().get(i).getPageSetup().setRestartPageNumbering(true);

//從1開始編頁(yè)碼

document.getSections().get(i).getPageSetup().setPageStartingNumber(1);

??????????? }

??????? }

//保存文檔

document.saveToFile("output/DiscontinuousNumbering.docx", FileFormat.Docx_2013);

??? }

}

效果圖:

(本文完)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嗅绸,一起剝皮案震驚了整個(gè)濱河市脾猛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鱼鸠,老刑警劉巖猛拴,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羹铅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡愉昆,警方通過(guò)查閱死者的電腦和手機(jī)职员,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)撼唾,“玉大人,你說(shuō)我怎么就攤上這事哥蔚〉构龋” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵糙箍,是天一觀的道長(zhǎng)渤愁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)深夯,這世上最難降的妖魔是什么抖格? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮咕晋,結(jié)果婚禮上雹拄,老公的妹妹穿的比我還像新娘。我一直安慰自己掌呜,他們只是感情好滓玖,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著质蕉,像睡著了一般势篡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上模暗,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天禁悠,我揣著相機(jī)與錄音,去河邊找鬼兑宇。 笑死碍侦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隶糕。 我是一名探鬼主播祝钢,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼若厚!你這毒婦竟也來(lái)了拦英?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤测秸,失蹤者是張志新(化名)和其女友劉穎疤估,沒(méi)想到半個(gè)月后灾常,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铃拇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年钞瀑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慷荔。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雕什,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出显晶,到底是詐尸還是另有隱情贷岸,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布磷雇,位于F島的核電站偿警,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏唯笙。R本人自食惡果不足惜螟蒸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望崩掘。 院中可真熱鬧七嫌,春花似錦、人聲如沸苞慢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)枉疼。三九已至皮假,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骂维,已是汗流浹背惹资。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留航闺,地道東北人褪测。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像潦刃,于是被迫代替她去往敵國(guó)和親侮措。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361