1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Java 添加页码到PDF文档

Java 添加页码到PDF文档

时间:2019-05-14 21:27:39

相关推荐

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();

}

}

页码添加效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。