本文介绍通过Java程序来添加页码到PDF文档的方法。
使用工具:Free Spire.PDF for Java (免费版)
Jar文件获取及导入:
方法1:可通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入到Java程序。
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(); } }
页码添加效果:
(本文完)