写点什么

如何通过 Java 代码将添加页码到 PDF 文档?

作者:在下毛毛雨
  • 2023-04-06
    四川
  • 本文字数:1748 字

    阅读完需:约 6 分钟

如何通过Java代码将添加页码到PDF文档?

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

代码编译环境

IntelliJIDEA 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"); }}
复制代码

效果图

—本文完—

发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2022-06-02 加入

还未添加个人简介

评论

发布
暂无评论
如何通过Java代码将添加页码到PDF文档?_Java_在下毛毛雨_InfoQ写作社区