pdf加页码java_Java 添加页码到PDF文档

本文介绍通过Java程序来添加页码到PDF文档的方法。

使用工具

Free Spire.PDF for Java (免费版)

Jar文件获取及导入:

方法1:可通过e-iceblue官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入到Java程序。

方法2:可通过maven仓库安装导入,可参考官网中的导入方法。

Java代码示例

import com.spire.pdf.*;

import com.spire.pdf.automaticfields.PdfCompositeField;

import com.spire.pdf.automaticfields.PdfPageCountField;

import com.spire.pdf.automaticfields.PdfPageNumberField;

import com.spire.pdf.graphics.*;

import java.awt.*;

import java.awt.geom.Dimension2D;

import java.awt.geom.Rectangle2D;

public class AddPageNumber {

public static void main(String[] args) {

//加载PDF文档

PdfDocument pdf= new PdfDocument();

pdf.loadFromFile("sample.pdf");

//创建字体

PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN, 10),true);

//获取页面尺寸

Dimension2D pageSize = pdf.getPages().get(0).getSize();

//初始化y坐标

float y = (float) pageSize.getHeight() - 40;

//遍历文档中的所有页面

for (int i = 0; i < pdf.getPages().getCount(); i++) {

//初始化页码域

PdfPageNumberField number = new PdfPageNumberField();

//初始化总页数域

PdfPageCountField count = new PdfPageCountField();

//创建复合域

PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.getBlack(), "第{0}页 共{1}页", number, count);

//设置复合域内文字对齐方式

compositeField.setStringFormat(new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top));

//测量文字大小

Dimension2D textSize = font.measureString(compositeField.getText());

//设置复合域在PDF页面上的位置及大小

compositeField.setBounds(new Rectangle2D.Float(((float) pageSize.getWidth() - (float) textSize.getWidth())/2, y, (float) textSize.getWidth(), (float) textSize.getHeight()));

//将复合域添加到PDF页面

compositeField.draw(pdf.getPages().get(i).getCanvas());

}

//保存文档

pdf.saveToFile("AddPageNumber.pdf");

pdf.dispose();

}

}

068e3dcc3145e667a69d169015e85c09.png页码添加效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值