Java 如何给现有PDF文档添加页码

有些PDF文档没有页码,用户在阅读的时候很不方便。这篇文章将介绍如何使用免费PDF Java组件 - Free Spire.PDF for Java给现有PDF文档添加页码。

导入jar包

首先,下载Free Spire.PDF for Java组件包,并解压缩,从lib文件夹下引用以下两个.jar文件到Java应用程序中:

  • Spire.Pdf.jar
  • Spire.Common.jar

原文档如下:

AddPageNumber.java代码

import com.spire.pdf.PdfDocument;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.*;

import java.awt.*;

public class AddPageNumber {
    public static void main(String[] args)
    {
        //加载PDF
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("Input.pdf");

        //设置页边距
        PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
        PdfMargins margin = new PdfMargins();
        margin.setTop(unitCvtr.convertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));
        margin.setBottom(unitCvtr.convertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));
        margin.setLeft(unitCvtr.convertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));
        margin.setRight(unitCvtr.convertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));

        //调用AddPageNumber方法添加页码
        AddPageNumber(pdf, margin);

        //保存文档
        pdf.saveToFile("AddPageNumber.pdf");
    }

    /**
     *
     * @param document
     * PDF文档
     * @param margin
     * PDF文档页面的边距
     */
    public static void AddPageNumber(PdfDocument document, PdfMargins margin)
    {
        int pageCount = document.getPages().getCount();
        for(int i = 0; i < pageCount; i++)
        {
            PdfBrush brush = PdfBrushes.getBlack();
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,14),true);
            PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
            int x = (int)document.getPages().get(i).getCanvas().getClientSize().getWidth() / 2;
            int y = (int)(document.getPages().get(i).getCanvas().getClientSize().getHeight() - margin.getBottom());
            Rectangle bounds = new Rectangle(x,y, 50, 20);
            PdfPageNumberField field = new PdfPageNumberField();
            field.setFont(font);;
            field.setBrush(brush);
            field.setStringFormat(format);
            field.setBounds(bounds);
            field.draw(document.getPages().get(i).getCanvas());
        }
    }
}

运行代码,打开生成文档,结果如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值