Java 新增Word頁首、頁尾
阿新 • • 發佈:2019-06-12
本篇文章將介紹通過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"); } }
刪除效果前後對比:
-
刪除首頁頁首頁尾
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); } }
首頁頁首頁尾刪除效果:
(本文完)
轉載請註明出處!
&n