翻譯|使用教程|編輯:吉煒煒|2025-03-26 11:49:26.000|閱讀 98 次
概述:在 PDF 文檔中添加頁眉和頁腳有助于保持一致的版式和專業的外觀。本文將介紹如何使用 Spire.PDF for Java,通過 Java 在現有的 PDF 文檔中添加頁眉和頁腳,并提供詳細的步驟和代碼示例。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在 PDF 文檔中添加頁眉和頁腳有助于保持一致的版式和專業的外觀。頁眉通常位于頁面頂部,可顯示文檔標題、作者姓名或公司名稱,而頁腳位于頁面底部,常用于添加頁碼、日期或法律聲明。這些元素對于報告、合同和正式文件至關重要,不僅提升了可讀性,還符合規范要求。本文將介紹如何使用 Spire.PDF for Java,通過 Java 在現有的 PDF 文檔中添加頁眉和頁腳,并提供詳細的步驟和代碼示例。
首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作為依賴項。JAR 文件可以從此鏈接下載。如果您使用 ,則可以將以下代碼添加到項目的 pom.xml 文件中,從而在應用程序中導入 JAR 文件。
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>//repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf</artifactId> <version>11.2.3</version> </dependency> </dependencies>
在使用 Spire.PDF for Java 處理現有的 PDF 文檔時,需要了解其坐標系的原點位于頁面左上角,X 軸向右延伸,Y 軸向下延伸。向頁面添加頁眉是指在頁面上方的空白區域內插入內容,如文本、圖片、自動字段和形狀等;而添加頁腳實際上就是在頁面底部的空白區域插入內容。
如果空白區域不足以容納您要添加的內容,您可以考慮增大 PDF 頁邊距。
Spire.PDF for Java 幫助用戶通過 PdfCanvas.drawString()、PdfCanvas.drawImage() 和 PdfCanvas.drawLine() 等方法在 PDF 文檔的頁面上繪制文本、圖像和形狀。為了在頁眉中添加頁碼、章節、日期等動態信息,您需要使用自動字段。Spire.PDF for Java 提供了 PdfPageNumberField 類、PdfSectionNumberField 類和 PdfCreationDateField 類等來實現這些數據的動態添加。
下面是使用 Spire.PDF for Java 向 PDF 文檔添加包含文本、圖像、日期和線條的頁眉的詳細步驟:
同樣的,PdfCanvas.drawString()、PdfCanvas.drawImage() 和 PdfCanvas.drawLine() 方法也可以用來在 PDF 文檔中添加頁腳。通過調整 X 軸和 Y 軸坐標,你可以在 PDF 頁面上的任何位置繪制想要添加的信息。如果需要在頁腳添加動態數據,如頁碼、章節號、日期等,可以使用由 Spire.PDF for Java 提供的 PdfPageNumberField、PdfPageCountField、PdfSectionNumberField 等類,以實現動態信息的自動添加。
以下是使用 Spire.PDF for Java 在 PDF 文檔中添加包含圖像和頁碼的頁腳的具體流程:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfCreationDateField;
import com.spire.pdf.graphics.*;
import java.awt.*;
public class AddHeaderToPdf {
public static void main(String[] args) {
// 創建一個 PdfDocument 對象
PdfDocument doc = new PdfDocument();
// 加載 PDF 文件
doc.loadFromFile("/示例.pdf");
// 加載添加到頁眉的圖像
PdfImage headerImage = PdfImage.fromFile("/Logo1.png");
// 獲取圖像的像素寬度
float width = headerImage.getWidth();
// 將像素轉換為點
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
float pointWidth = unitCvtr.convertUnits(width, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point);
// 自定義頁眉文本
String headerText = "冰藍科技\nwww.e-iceblue.cn";
// 創建字體
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("DengXian", Font.BOLD, 12),true);
// 創建筆刷
PdfBrush brush = PdfBrushes.getPurple();
// 創建畫筆
PdfPen pen = new PdfPen(brush, 1.0f);
// 創建文檔創建日期字段
PdfCreationDateField creationDateField = new PdfCreationDateField(font, brush);
creationDateField.setDateFormatString("yyyy-MM-dd");
// 創建組合字段用以顯示文本和日期
PdfCompositeField compositeField = new PdfCompositeField(font, brush, "創建時間: {0}", creationDateField);
compositeField.setLocation(new Point(55, 58));
// 遍歷文檔中的頁面
for (int i = 0; i < doc.getPages().getCount(); i++)
{
// 獲取當前頁面
PdfPageBase page = doc.getPages().get(i);
// 將圖像繪制到頁面上方空白區域
page.getCanvas().drawImage(headerImage, page.getActualSize().getWidth() - pointWidth - 55, 20);
// 繪制文本
page.getCanvas().drawString(headerText, font, brush, 55, 33);
// 繪制線條
page.getCanvas().drawLine(pen, new Point(55, 73), new Point((int)page.getActualSize().getWidth() - 55, 70));
// 將組合字段繪制到頁眉區域
compositeField.draw(page.getCanvas());
}
// 保存修改后的文檔
doc.saveToFile("/添加頁眉.pdf");
doc.dispose();
}
}
Java 在現有 PDF 文檔中添加頁腳
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.PdfBrush;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfImage;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
public class AddFooterToPdf {
public static void main(String[] args) {
// 創建一個 PdfDocument 對象
PdfDocument doc = new PdfDocument();
// 加載 PDF 文件
doc.loadFromFile("/示例.pdf");
// 加載一張圖片
PdfImage footerImage = PdfImage.fromFile("/banner.png");
// 創建字體
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("DengXian", Font.BOLD, 12),true);
// 創建筆刷
PdfBrush brush = PdfBrushes.getWhite();
// 創建當前頁碼字段
PdfPageNumberField pageNumberField = new PdfPageNumberField();
// 創建總頁數字段
PdfPageCountField pageCountField = new PdfPageCountField();
// 創建一個組合字段,將頁碼和頁數字段組合為字符串
PdfCompositeField compositeField = new PdfCompositeField(font, brush, "第 {0} 頁,共 {1} 頁", pageNumberField, pageCountField);
// 獲取字體大小
Dimension2D fontSize = font.measureString(compositeField.getText());
// 獲取頁面大小
Dimension2D pageSize = doc.getPages().get(0).getSize();
// 設置組合字段的位置
compositeField.setLocation(new Point2D.Double((pageSize.getWidth() - fontSize.getWidth())/2, pageSize.getHeight() - 45));
// 遍歷文檔中的頁面
for (int i = 0; i < doc.getPages().getCount(); i++)
{
// 獲取指定頁面
PdfPageBase page = doc.getPages().get(i);
// 在頁面底部空白區域繪制圖片
page.getCanvas().drawImage(footerImage, 55, pageSize.getHeight() - 65, pageSize.getWidth() - 110, 50);
// 在頁面底部空白區域繪制組合字段
compositeField.draw(page.getCanvas());
}
// 保存結果文檔
doc.saveToFile("/添加頁腳.pdf");
doc.dispose();
}
}
————————————————————————————————————————
關于慧都科技:
慧都科技是專注軟件工程、智能制造、石油工程三大行業的數字化解決方案服務商。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技E-iceblue的官方授權代理商,提供E-iceblue系列產品免費試用,咨詢,正版銷售等于一體的專業化服務。E-iceblue是國產文檔處理領域的優秀產品,支持國產化信創,幫助企業高效構建文檔處理的應用程序。
歡迎下載|體驗更多E-iceblue產品
獲取更多信息請咨詢 ;技術交流Q群(767755948)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網