在Word文檔中,頁眉位於文檔中每一個頁面的頂部區域,而頁腳則位於文檔中每一個頁面的底部區域。它們都經常使用於顯示文檔的附加信息,例如時間、圖形、公司微標或做者姓名等。本文將經過使用Java程序來演示如何在Word文檔中添加頁眉和頁腳。主要包括:添加文本、圖片和頁碼至頁眉、頁腳;設置奇偶頁頁眉頁腳不一樣;設置首頁頁眉頁腳不一樣;鎖定頁眉頁腳。html
方法1:經過官方網站下載獲取jar包。解壓後將lib文件夾下的Spire.Doc.jar文件導入Java程序。(以下圖)java
方法2:經過maven倉庫安裝導入。具體安裝詳情參見此網頁。app
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); //調用方法添加頁眉頁腳 AddHeaderFooter(sec); //保存文檔 doc.saveToFile("output/AddHeaderFooter.docx"); } //自定義方法來添加圖片、文字頁眉及頁碼 private static void AddHeaderFooter(Section sec){ //加載圖片添加到頁眉,並設置圖片在段落中的對齊方式 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); //設置圖片的文本環繞方式、頁眉底部邊線(粗細、間距) 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); } }
頁眉、頁腳添加效果:maven
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); //設置奇數頁頁眉頁腳 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("output/result.docx",FileFormat.Docx_2010); } }
奇偶頁頁眉頁腳設置效果:工具
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); //添加首頁頁眉頁腳 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("output/result2.docx",FileFormat.Docx_2010); } }
頁眉頁腳設置效果:測試
import com.spire.doc.*; public class LockHeaderFooter { public static void main(String[] args) { //加載測試文檔 Document doc = new Document("D:\\Desktop\\result2.docx"); //獲取第一節 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); } }
鎖定頁眉頁腳後,文檔除頁眉頁腳外其餘內容依舊可進行編輯。字體
(本文完)網站