为 PDF 添加页眉页脚

页眉是放置在页面顶部边缘区域的文本,而页脚则放置在页面底部或页脚处。通常,这些区域用于插入文档信息,例如文档名称、章节标题、页码、创建日期等。这些信息在每一页上重复出现,从而使读者能够轻松浏览文档。

此外,请注意,页眉和页脚有助于以可预测的格式提供有关文档的快速信息,还有助于设置文档的不同部分。在本文中,我们将学习如何使用 Aspose.PDF Cloud SDK for JavaPDF 文件的页眉和页脚区域添加文本和图像。

使用 cURL 将文本添加到标题

cURL 命令是一种通过命令行终端访问 RESTFul API 的令人兴奋的方式。由于 Aspose.PDF Cloud SDK 是根据 REST 原则开发的,因此可以通过命令提示符轻松访问。但是,请注意,为了确保用户隐私和数据完整性,我们所有的 API 仅供授权人员访问。因此,您需要首先访问 Aspose.Cloud 仪表板,如果您有 GitHub 或 Google 帐户,只需注册即可。否则,单击 创建新帐户 按钮并提供所需信息。现在使用凭据登录仪表板并从仪表板展开应用程序部分,向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。

以下命令显示如何创建 JWT 访问令牌,该令牌将用于在 PDF 文档的标头区域添加文本。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=c235e685-1aab-4cda-a95b-54afd63eb87f&client_secret=b8da4ee37494f2ef8da3c727f3a0acb9" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

使用以下 cURL 命令在 PDF 文档的标题部分添加文本。

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithAnnotations.pdf/header/text?startPageNumber=2&endPageNumber=2" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: application/json" \
-d "{  \"Background\": true,  \"HorizontalAlignment\": \"CENTER\",  \"Opacity\": 0.8,  \"Rotate\": \"None\",  \"RotateAngle\": 0,  \"XIndent\": 0,  \"YIndent\": 0,  \"Zoom\": 1,  \"TextAlignment\": \"CENTER\",  \"Value\": \"Aspose.PDF Cloud SDK for Java via cURL\",  \"TextState\": {    \"FontSize\": 16,    \"Font\": \"Arial\",    \"ForegroundColor\": {      \"A\": 0,      \"R\": 0xDA,      \"G\": 0xA5,      \"B\": 0x20    },    \"BackgroundColor\": {      \"A\": 0,      \"R\": 0xFA,      \"G\": 0xEB,      \"B\": 0xD7    },  },  \"LeftMargin\": 1,  \"TopMargin\": 20,  \"RightMargin\": 200}"
PDF 中的文本标题

图 1:- 通过 cURL 命令添加文本标题。

本示例中使用的示例文件可以从以下位置下载:

使用 Java 在 PDF 中添加文本标题

为了使用 SDK,您需要首先从 MavenGitHub 安装它。下面详细介绍了如何在 Maven 构建项目中下载和使用 Aspose.Pdf.jar。

在您的 pom.xml 文件中添加以下依赖项。

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>https://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

下面给出了如何满足此要求的步骤。

  • 首先,创建 PdfApi 的实例,同时提供 ClientSecret 和 ClientId 详细信息
  • 其次,创建一个 Color 对象来定义 ForeGround 和 BackGround 颜色细节。
  • 其次,创建 TextState 类的对象。
  • 使用 fontSize(..) 方法设置字体大小细节。font(..) 方法定义字体。foregroundColor(…) 方法定义文本前景细节,backgroundColor(…) 方法定义背景信息。
  • 现在创建 TextHeader 对象并定义边距细节。
  • 使用 value(..) 方法指定文本标题对象的内容。
  • 现在调用 textState(…) 方法并将上面创建的 TextState 实例作为参数传递。
  • 为了在页面内容后面显示 Header,将真值作为参数传递给 TextHeader 类的 background(…) 方法。
  • 现在,为了在左侧呈现图像,将 HorizontalAlignment.CENTER 值传递给 HorizontalAlignment(…) 方法。
  • opacity(…) 方法表示印章不透明度。默认值为 1.0。
  • 一旦我们设置了缩放值,就创建 AsposeResponse 对象。
  • 最后,调用 PdfApi.postDocumentTextHeader(…) 方法并传递源 PDF 文件名、TextHeader 对象、开始和结束页面(需要添加印章的位置)作为参数。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// createPdfApi 实例
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// 输入PDF文档
String sourcePDF = "PdfWithAnnotations.pdf";

// 放置页眉图像的 PDF 起始页
int startPage = 2;

// PDF 的结束页放置页眉图像
int endPage = 3;
		        
// 以十六进制代码指定前景色为 SlateBlue
Color foregroundColor = new Color();
foregroundColor.setA(0x00);
foregroundColor.setR(0x6A);
foregroundColor.setG(0x5A);
foregroundColor.setB(0xCD);

// 以十六进制代码指定背景颜色为 AntiqueWhite
Color backgroundColor = new Color();
backgroundColor.setA(0x00);
backgroundColor.setR(0xFA);
backgroundColor.setG(0xEB);
backgroundColor.setB(0xD7);

// 创建 TextState 对象来定义字体大小、字体和颜色细节
TextState textState = new TextState()
  .fontSize(16.)
  .foregroundColor(foregroundColor)
  .backgroundColor(backgroundColor)
  .font("Arial");
		        
// 创建 TextHeader 对象的实例
TextHeader headerObject = new TextHeader()    
  .leftMargin(1.)
  .rightMargin(200.)
  .topMargin(10.)
	
  // 要呈现的文本标题的内容
  .value("Aspose.PDF Cloud SDK For Java")
	
  // 设置对齐方式为居中
  .textAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
  .textState(textState);
	
  // 设置页面内容后面的页眉文本
  headerObject.background(true)
	
  // 将文本标题对齐方式设置为居中
  .horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.CENTER)
	
  // 将文本标题的不透明度设置为 0.8
  .opacity(0.8)
  .rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
  .rotateAngle(0.)
  .xindent(2.0)
  .yindent(5.0)
  .zoom(1.0);

// 调用 API 方法将文本标题添加到 PDF
AsposeResponse response = pdfApi.postDocumentTextHeader(sourcePDF, headerObject,startPage, endPage, null, null);
assertEquals(200, (int)response.getCode());
Java 中添加的文本标题

图 2:使用 Java 添加的文本标题的预览。

为了在页脚区域添加文本,请创建 TextFooter 类的实例并调用 PdfApi 类的 postDocumentTextFooter(…) 方法。其余步骤和细节与上面添加文本标题的步骤和细节相同。

使用 cURL 在 PDF 标题中添加图像

我们可以使用 cURL 命令,在 PDF 文件的标头部分使用 PostDocumentImageHeader API 轻松添加图像文件。添加图像标记时,我们可以选择指定水平对齐、不透明度、旋转角度、图像缩放系数、宽度、高度、左边距、上边距、右边距等详细信息。

name 参数定义输入/源 PDF 文档,imageHeader 指定要加盖印章的图像文件,startPageNumber 属性定义 PDF 文档的起始页,endPageNumber 定义包含图像印章的结束页。在下面的 cURL 命令中,Background 属性设置为 false,以便图像可见。HorizontalAlignment 指定为 Left,Opacity 值定义为 0.8,Zoom 因子设置为 1,Width 定义为 250,Height 定义为 80 点,RightMargin 指定为 500 点。

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithAnnotations.pdf/header/image?startPageNumber=2&endPageNumber=2" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"  \
-H  "Content-Type: application/json" \
-d "{"Background":false,"HorizontalAlignment":'Left',"Opacity": .8,"Rotate":'None',"RotateAngle": 0,"XIndent": 2,"YIndent": 5,"Zoom": 1,"FileName": 'asposetoolsnew.png',"Width": 250,"Height": 80,"LeftMargin": 1,"TopMargin": 10,"RightMargin": 500}"
页眉中的图像标记

图像 3:PDF 标题部分的图像印章。

上述示例中使用的示例文件可以从以下链接下载:

使用 Java 在 Header 中添加图像

Aspose.PDF Cloud SDK for Java 提供了一个显着的功能,可以用更少的代码行在 PDF 文件中添加图像头。

下面是在 PDF 文档中添加图像标题的步骤

  • 创建 PdfApi 的对象,同时提供 ClientSecret 和 ClientId 详细信息。
  • 其次,创建 ImageHeader 类的对象。
  • 使用 ImageHeader 类的 width(..) 和 height(…) 方法设置图像的宽度和高度细节。
  • 现在使用 fileName(…) 方法设置标题图像的路径详细信息。
  • 为了显示页面内容后面的图像,将 false 参数传递给 background(…) 方法。
  • 现在,为了在左侧呈现图像,将 HorizontalAlignment.LEFT 值传递给 HorizontalAlignment(…) 方法。
  • opacity(…) 方法表示印章不透明度。默认值为 1.0。
  • 一旦我们设置了缩放值,就创建 AsposeResponse 对象。
  • 最后,调用 PdfApi.postDocumentImageHeader(…) 方法,同时将源 PDF 文件名、ImageHeader 对象、起始页和结束页(需要添加印章的位置)作为参数传递给此方法。
// 从 https://dashboard.aspose.cloud/ 获取 ClientID 和 ClientSecret
String clientId = "29ac1517-753f-4303-b755-7185e35cf939";
String clientSecret = "c537caf71eafc8a75a5ee7813b703276";
				
// createPdfApi 实例
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// 输入PDF文档
String sourcePDF = "PdfWithAnnotations.pdf";

// 放置页眉图像的 PDF 起始页
int startPage = 2;

// PDF 的结束页放置页眉图像
int endPage = 3;
		        
// 创建 ImageHeader 对象的实例
ImageHeader headerObject = new ImageHeader()
	.width(250.0)
	.height(80.0)
	.leftMargin(1.)
	.rightMargin(500.)
	.topMargin(10.)
	.fileName("asposetoolsnew.png");
	
	// 将标题图像置于前台/可见
	headerObject.background(false)
	
	// 将图像标题对齐方式设置为左对齐
	.horizontalAlignment(com.aspose.asposecloudpdf.model.HorizontalAlignment.LEFT)
	.opacity(0.8)
	.rotate(com.aspose.asposecloudpdf.model.Rotation.NONE)
	.rotateAngle(0.)
	.xindent(2.0)
	.yindent(5.0)
	.zoom(1.0);

// 调用 API 方法在 PDF 中添加标题图像
AsposeResponse response = pdfApi.postDocumentImageHeader(sourcePDF, headerObject,startPage, endPage, null, null);

为了在页脚区域添加图像,请创建 ImageFooter 类的对象并调用 pdfApi 类的 postDocumentImageFooter(…) 方法。其余步骤与上面页眉部分中的图像所述相同。

结论

在本文中,我们讨论了如何通过 cURL 命令访问 Aspose.PDF Cloud 以在 PDF 文档的页眉/页脚区域添加文本和图像的步骤。我们还探讨了安装 Aspose.PDF Cloud SDK for Java 的步骤,并使用 Java 语言在 PDF 文件的页眉或页脚部分添加文本和图像。有关 API 其他令人兴奋的功能的更多详细信息,请浏览 产品文档

我们所有的云 SDK 都是开源的,因此可以从 GitHub 下载完整的源代码。