在日常工作中,为了方便阅读、检索与管理PDF文档,我们常常需要对其进行页码的添加。 那么接下来就分享一个使用免费的Free Spire.PDF for Java在Java程序中快速为PDF文档添加页码的方法。

首先放一张效果图供大家参考:

基本步骤:

将lib文件夹下的Spire.Pdf.jar包作为依赖项导入到Java应用程序中,或者通过Maven仓库安装JAR包(配置pom.xml文件的代码见下文)

在Java应用程序中新建一个Java Class(此处我命名为AddPageNumbers), 然后输入相应的Java代码并运行

配置pom.xml文件:

com.e-iceblue

http://repo.e-iceblue.cn/repository/maven-public/

e-iceblue

spire.pdf.free

2.6.3

Java代码

import com.spire.pdf.PdfDocument;

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 AddPageNumbers {

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 < pdf.getPages().getCount(); 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("AddPageNumbers.pdf");

}

标签:Java,spire,new,import,PDF,pdf,页码

来源: https://www.cnblogs.com/jazz-z/p/12985679.html

java pdf添加页码_Java 给PDF文档添加页码相关推荐

  1. java word 颜色设置_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  2. java后台代码添加超链接_Java 实现Excel文档添加超链接的代码

    超链接即内容链接,通过给特定对象设置超链接,可实现载体与特定网页.文件.邮件.网络等的链接,点击链接载体可打开链接目标,在文档处理中是一种比较常用的功能.本文将介绍通过Java程序给Excel文档添加 ...

  3. java 加背景颜色_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  4. java doc转图片_Java 将word文档转换为PNG、XPS、RTF等格式

    在日常办公中,Word是一种很好的文档排版工具.在Word创建好文档后, 我们常常需要将其保存为PDF.图片或其他格式.本文就将通过使用Java程序来演示如何将Word文档转换为PNG.XPS.RTF ...

  5. java合并excel文件_Java 合并Excel文档

    在日常使用Excel软件办公时,通常会产生很多文档.当我们需对其中的数据进行整理和统计时,对文档进行合并处理将能够大大提高操作效率.一般文档合并可分为两种情况:一是将同一个Excel文档内多张工作表的 ...

  6. java word添加图片_Java 替换word文档文字并指定位置插入图片

    先说下 需要的依赖包 org.apache.poi poi-excelant 3.12 org.apache.poi poi-scratchpad 3.12 org.apache.poi poi-oo ...

  7. java生成world文件_Java导出World文档(入门)

    第一步就是将World文档里面需要从数据库填充的部分用占位符替换 第二步:就是将此文档保存为Xml格式 第三步:将其放在resource目录下,并选中此文件,右键点击properties属性,将其编码 ...

  8. java 读取ppt文件_Java 读取PPT文档属性

    import com.spire.presentation.*; public class GetProperty { public static void main(String[]args) th ...

  9. word巧妙设置页码(做标书文档设置页码必备方法)

    我们在做投标书或者文档时需要插入页码,因为投标书有一定的格式,一般在标书的封面及目录都不插入页码,从文档的正文开始插入页码,方法如下: 如果想从文档的第三页开始插入页码,则将光标置于文档第二页的最后 ...

  10. java 读取txt字符串_java读取txt文档需要匹配文档中的字符串

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public s ...

最新文章

  1. 虚拟网卡技术-VETH、MACVLAN、IPVLAN
  2. 《Ext JS 高级程序设计》的目录与样张
  3. poj 1283(递推ordp)
  4. 通过IDEA查看某个类的继承关系
  5. (3)websocket实现单聊和群聊
  6. kakfa中的ISR解释
  7. matlab impyramid,图像 – Matlab impyramid问题
  8. java基础-关键字final
  9. php有哪些_php工作原理是什么?php常用功能有哪些?
  10. linux netlink 内核配置,如何在linux内核模块中加入netlink通信接口
  11. java 路径通配符_java实现路径通配符*,**,?
  12. 去哪儿CEO庄辰超:傍百度战携程与巨头共舞
  13. 计算机组成原理/计算机硬件基础第五章:存储器
  14. python中char是什么_python有char类型吗
  15. 汪子熙趣味接龙游戏实现的参考资源
  16. USACO2018JAN Gold
  17. 【项目实战二】基于模板匹配和形态学操作的信用卡卡号识别(OpenCV+Python)
  18. CentOS7环境安装oracleRAC集群遇到的问题总结二(执行root.sh报错ORA-15018和ORA-15020)
  19. 行内元素和块元素的区别
  20. 购物车案例ajax,Ajax改购物车示例

热门文章

  1. Flume防止重复消费——断点续传
  2. 织梦系统参数设置出现Token mismatch!提示的解决办法
  3. java-微信语言amr文件转码为Mp3文件
  4. 微PE制作U盘启动盘步骤
  5. 第十届泰迪杯数据挖掘B题:电力系统负荷预测分析--解题思路与部分代码03
  6. [翻译]Exploiting CVE-2015-0057 ——Part 1
  7. 计算机网络:从入门到放弃
  8. 正方形数目 cmp 栈
  9. 《星际争霸2》分析报告
  10. 论坛发帖页面html,为Discuz门户文章和论坛帖子页面添加分享按钮