本文介绍如何使用spire.pdf for java添加页码到pdf文档的底部中央。您可以根据需求,添加页码到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 addpagenumbers {
public static void main(string[] args) {
//加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("c:\\users\\administrator\\desktop\\sample.pdf");
//创建字体
pdftruetypefont font = new pdftruetypefont(new font("宋体", font.plain, 10),true);
//获取页面尺寸
dimension2d pagesize = doc.getpages().get(0).getsize();
//初始化y坐标
float y = (float) pagesize.getheight() - 40;
//遍历文档中的页
for (int i = 0; i < doc.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(doc.getpages().get(i).getcanvas());
}
//保存为另外一个文档
doc.savetofile("output/addpagenumbers.pdf");
}
}