页码可以清楚了解总页数、定位页数快速寻找自己所要的文段、打印时不会分不清头中尾。很多人在使用办公软件的时候就会选择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文档?的更多相关文章

  1. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  2. Java使用wkhtmltox实现HTML代码生成PDF文档或者图片

    由于项目需要,把HTML代码转为PDF或者图片进行保存.最开始使用Flying Saucer来把HTML代码生成为PDF文档,功能已经开发出来了,也能够完成转换功能,期间也遇到了中文支持以及图片路径的 ...

  3. JAVA使用itext根据模板生成PDF文档

    1.制作PDF模板 网址打开:https://www.pdfescape.com/open/ 我们这里先在线上把基础的内容用word文档做好,然后转成PDF模板,直接上传到网站上,这样方便点 假设我们 ...

  4. 【PDF】java使用Itext生成pdf文档--详解

    [API接口]  一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/ ...

  5. Java 插入附件到PDF文档

    在文档中插入附件,可以起到与源文档配套使用的目的,以一种更简便的方式对文档起到补充说明的作用.下面将介绍通过Java编程插入附件到PDF文档中的方法.这里插入的文档可以是常见的文档类型,如Word.E ...

  6. Java生成PDF文档(表格、列表、添加图片等)

    需要的两个包及下载地址: (1)iText.jar:http://download.csdn.net/source/296416 (2)iTextAsian.jar(用来进行中文的转换):http:/ ...

  7. Java 添加条码、二维码到PDF文档

    本文介绍如何通过Java程序在PDF文档中添加条码和二维码.创建条码时,可创建多种不同类型的条码,包括Codebar.Code11.Code128A.Code128B.Code32.Code39.Co ...

  8. 如何通过Java应用程序添加或删除 PDF 中的附件

    当我们在制作PDF文件或者PPT演示文稿的时候,为了让自己的文件更全面详细,就会在文件中添加附件.并且将相关文档附加到 PDF 可以方便文档的集中管理和传输.那么如何添加或删除 PDF 中的附件呢?别 ...

  9. C#给PDF文档添加文本和图片页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

  10. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...

随机推荐

  1. spring boot2.3.0集成 thymelaf

    配置pom 如果是2.x的直接配置一个starter即可  <!-- ThymeLeaf 依赖 --><dependency>  <groupId>org.spri ...

  2. JAVA设计模式及其设计原则

    设计模式: 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结. 单例模式:在一个jvm虚拟机,要创建的对象控制成独一份:举例:统计单台虚拟机内的用户在线数 package ...

  3. SVN报错:database is locked

    https://blog.csdn.net/k7arm/article/details/81168416 https://www.jianshu.com/p/aa9c67fcc407

  4. Java中String相关知识

    String 1.String概述 String代表字符串,Java程序中所有的字符串文字(例如'abc")都被实现为此类的实例,也就是说,Java中所有的双引号字符串都是String类的对 ...

  5. 在Eclipse 中导入maven项目, progress对话框中出现importing maven project的进度条卡住

    一.在Eclipse配置Maven 方法1:在Eclipse上下载,太慢了,不用 方法2:在电脑本地下载,然后Eclipse载入 二.方法2详细步骤 1.官网下载:http://maven.apach ...

  6. mysql创建数据库,用户,授权基操

    # 创建数据库create database test; # 创建用户并设置密码 create user 'test'@'%' identified by '123456';# 设置密码SET PAS ...

  7. git命令2

    git status git status -s git diff git diff --cached --添加到暂存区成为快照 git add -A git add . --删除被git追踪的文件 ...

  8. Python数据可视化,自适应浏览器

    pyecharts生成的html默认是靠左上显示的需要生成的文件居中显示,且能根据浏览器窗口大小自动调整需要修改html当然,如果你是熟悉html,且只是临时少量生成表格的话,每次生成完后手动修改ht ...

  9. FastReport OpenSource发布到Linux上的准备

    一.安装libgdiplus(libgdiplus是一个Mono库,用于对非Windows操作系统提供GDI+兼容的API)   apt-get install build-essential lib ...

  10. mac git远程仓库错误解决方法

    mac更新后不知道怎么回事,git时出现了 Permission denied (publickey). 经查询后得出原因 1.首先给git进行config的配置 git config --globa ...