这篇文章主要介绍“Java如何实现添加页码到PDF文档”,在日常操作中,相信很多人在Java如何实现添加页码到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>
以下步骤展示了如何将“第 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文档”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://www.cnblogs.com/Carina-baby/p/17293122.html