java页码_Java 添加页码到PDF文档

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

使用工具:Free Spire.PDF for Java (免费版)

Jar文件获取及导入:

方法1:可通过官网

方法2:可通过

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 

//初始化页码域

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

}

}

页码添加效果:

5fe04e2e8ccedcceafdfbd7a1b5fca8a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 iText 库来给 PDF 文档添加页码。以下是一个简单的示例代码: ```java import com.itextpdf.kernel.font.PdfFont; import com.itextpdf.kernel.font.PdfFontFactory; import com.itextpdf.kernel.geom.Rectangle; import com.itextpdf.kernel.pdf.PdfDocument; import com.itextpdf.kernel.pdf.PdfPage; import com.itextpdf.kernel.pdf.PdfWriter; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.Paragraph; import com.itextpdf.layout.property.TextAlignment; import java.io.File; import java.io.IOException; public class AddPageNumber { public static void main(String[] args) throws IOException { // 设置输入和输出文件 File input = new File("input.pdf"); File output = new File("output.pdf"); // 创建PdfDocument对象 PdfDocument pdfDoc = new PdfDocument(new PdfReader(input), new PdfWriter(output)); // 获取页码总数 int totalPages = pdfDoc.getNumberOfPages(); // 创建字体 PdfFont font = PdfFontFactory.createFont(); // 遍历每一页,并在底部添加页码 for (int i = 1; i <= totalPages; i++) { PdfPage page = pdfDoc.getPage(i); // 创建Document对象 Document doc = new Document(pdfDoc, page.getPageSize()); // 创建页码字符串 Paragraph pageNumber = new Paragraph(String.format("Page %d of %d", i, totalPages)); pageNumber.setFont(font); pageNumber.setFontSize(10); pageNumber.setTextAlignment(TextAlignment.CENTER); // 添加页码到页面底部 doc.showTextAligned(pageNumber, page.getPageSize().getWidth() / 2, pageNumber.getFontSize(), TextAlignment.CENTER); // 关闭Document对象 doc.close(); } // 关闭PdfDocument对象 pdfDoc.close(); } } ``` 该代码会在每一页的底部添加页码,并将结果输出到指定的输出文件中。你可以根据需要修改代码来适应你的具体情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值