Java 给PDF文档添加页码
2020-05-29 16:02:22来源:博客园 阅读 ()
在日常工作中,为了方便阅读、检索与管理PDF文档,我们常常需要对其进行页码的添加。 那么接下来就分享一个使用免费的Free Spire.PDF for Java在Java程序中快速为PDF文档添加页码的方法。
首先放一张效果图供大家参考:
基本步骤:
- 下载Free Spire.PDF for Java包并解压缩
- 将lib文件夹下的Spire.Pdf.jar包作为依赖项导入到Java应用程序中,或者通过Maven仓库安装JAR包(配置pom.xml文件的代码见下文)
- 在Java应用程序中新建一个Java Class(此处我命名为AddPageNumbers), 然后输入相应的Java代码并运行
配置pom.xml文件:
<repositories> <repository> <id>com.e-iceblue</id> <url>http://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>2.6.3</version> </dependency> </dependencies>
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"); }
原文链接:https://www.cnblogs.com/jazz-z/p/12985679.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash