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