Java实现添加页码到PDF文档

 更新时间:2023年04月07日 08:25:19   作者:Carina-baby  
页码可以清楚了解总页数、定位页数快速寻找自己所要的文段、打印时不会分不清头中尾。今天这篇文章就将介绍如何通过Java代码,以编程的方式将添加页码到PDF文档,需要的可以参考一下

页码可以清楚了解总页数、定位页数快速寻找自己所要的文段、打印时不会分不清头中尾。很多人在使用办公软件的时候就会选择PDF进行文档的保存,因为PDF在保存之后不会出现乱码甚至是格式改变的情况。在PDF中添加页码成功后每张PDF页面的最下面会显示页码,这样可以更加详细清晰的明白文档的相关性和内容的具体位置。并且方便了我们后续工作的展开,大大提高了职场中的工作效率。今天这篇文章就将介绍如何通过Java代码,以编程的方式将添加页码到PDF文档。详情请阅读以下内容。

代码编译环境

IntelliJ IDEA 2019(jdk 1.8.0)

PDF Jar包:Free Spire.PDF for Java 5.1.0

引入jar

导入方法1:

手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:

导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。

<repositories>

        <repository>

            <id>com.e-iceblue</id>

            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

        </repository>

    </repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.pdf.free</artifactId>

        <version>5.1.0</version>

    </dependency>

</dependencies>

将添加页码到PDF文档

以下步骤展示了如何将“第 X 页(共 Y 页)”这样的页码添加到现有的 PDF 文档中:

  • 创建 PdfDocument 类的对象。
  • 使用 PdfDocument.loadFromFile() 方法加载 PDF 文档。
  • 创建 PdfPageNumberField 类的对象。
  • 创建 PdfPageCountField 类的对象。
  • 创建 PdfCompositeField 类的对象。
  • 使用 PdfCompositeField.setStringFormat() 方法为复合字段设置文本对齐方式。
  • 循环遍历 PDF 文档中的每一页,然后使用 PdfCompositeField.draw() 方法在页面的特定位置绘制复合字段。
  • 使用 PdfDocument.saveToFile() 方法保存结果文档。

完整代码

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.*;

public class addPageNumber {
    public static void main(String[] args) {

        //创建 PdfDocument 类的对象
        PdfDocument pdf = new PdfDocument();
        //载入PDF文档
        pdf.loadFromFile("九寨沟简介 .pdf");

        //创建 PdfTrueTypeFont 类的对象
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("华文中宋", Font.PLAIN, 10));

        //创建 PdfPageNumberField 类的对象
        PdfPageNumberField pageNumberField = new PdfPageNumberField(font, PdfBrushes.getBlack());

        //创建 PdfPageCountField 类的对象
        PdfPageCountField pageCountField = new PdfPageCountField(font, PdfBrushes.getBlack());

        //创建一个 PdfCompositeField 类的对象,将页码字段和页数字段添加到复合字段
        PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.getBlack(), "第{0}页/共{1}页", pageNumberField, pageCountField);

        //设置复合字段的文字格式
        compositeField.setStringFormat(new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top));

        //循环遍历文档中的页面
        for(int i = 0; i < pdf.getPages().getCount();i ++)
        {
            PdfPageBase page = pdf.getPages().get(i);
            float x = (float) page.getSize().getWidth()/2 - 20;
            float y = (float)page.getSize().getHeight() - pdf.getPageSettings().getMargins().getBottom();
            //将复合字段描绘于每个页面上
            compositeField.draw(page.getCanvas(), x, y);
        }

        //保存结果文档
        pdf.saveToFile("添加页码.pdf");
    }
}

效果图

到此这篇关于Java实现添加页码到PDF文档的文章就介绍到这了,更多相关Java添加页码到PDF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java使用OGEngine开发2048

    java使用OGEngine开发2048

    众所周知OGEngine是国人对AndEngine改进后的国产Java编程的游戏引擎,除了支持3D游戏这个鸡肋功能之外AndEngine的功能OGEngine都有,而且AndEngine缺少的多点触摸功能也被国人完善了。今天我们就尝试下使用OGEngine制作热门游戏2048.
    2015-03-03
  • 如何基于java向mysql数据库中存取图片

    如何基于java向mysql数据库中存取图片

    这篇文章主要介绍了如何基于java向mysql数据库中存取图片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 使用Java计算屏幕的PPI的方法详解

    使用Java计算屏幕的PPI的方法详解

    在现代电子设备中,屏幕的分辨率和显示效果是用户非常关注的一个指标,PPI(Pixels Per Inch,每英寸像素数)是衡量屏幕显示精度的重要参数之一,PPI越高,屏幕显示的图像越细腻,视觉效果越好,本文将详细介绍PPI的概念、计算方法,并通过Java代码实现PPI的计算
    2025-02-02
  • java如何自动补齐数值至指定位数

    java如何自动补齐数值至指定位数

    这篇文章主要介绍了java如何自动补齐数值至指定位数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 解决eclipse上传svn忽略target文件夹的坑

    解决eclipse上传svn忽略target文件夹的坑

    这篇文章主要介绍了解决eclipse上传svn忽略target文件夹的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • java引用jpython的方法示例

    java引用jpython的方法示例

    这篇文章主要介绍了java引用jpython的方法,结合实例形式分析了java引用jpython及相关使用技巧,需要的朋友可以参考下
    2016-11-11
  • Maven之分析剔除无用的jar引用问题

    Maven之分析剔除无用的jar引用问题

    这篇文章主要介绍了Maven之分析剔除无用的jar引用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Springboot静态资源的访问方法介绍

    Springboot静态资源的访问方法介绍

    最近在做SpringBoot项目的时候遇到了“白页”问题,通过查资料对SpringBoot访问静态资源做了总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java中的"找不到符号"错误解决办法

    Java中的"找不到符号"错误解决办法

    开发中遇到一个问题,当我用idea开发工具将新的项目代码从GitLab上面拉取下来,所有的Maven依赖也导入成功,然后启动项目,结果报错:java:找不到符号,这篇文章主要给大家介绍了关于Java中"找不到符号"错误的解决办法,需要的朋友可以参考下
    2023-10-10
  • java 结合jQuery实现跨域名获取数据的方法

    java 结合jQuery实现跨域名获取数据的方法

    下面小编就为大家带来一篇java 结合jQuery实现跨域名获取数据的方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05

最新评论