itext对已经存在的pdf添加页眉页脚
接上一篇拼接pdf后,需要对不同文件的pdf展示不同的页眉及页脚,所以,这篇分享对于已存在的pdf进行页眉页脚的添加。
public static String RederAndCopyByPDF(String[] files, String savePath,ByteArrayOutputStream stream)
throws IOException, DocumentException {
byte[] byteArray = stream.toByteArray();
// 读取pdf拼接的二进制
PdfReader reader = new PdfReader(byteArray);
// savePath 既我要添加页眉页脚以后的文件地址.
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(savePath));
// 因为我们需要考虑繁体字样,经过试验,niGB-UTF16-H 能够完美支持全部字体格式
BaseFont bf = BaseFont.createFont("STSong-Light", "niGB-UTF16-H", BaseFont.NOT_EMBEDDED); // set font
// baseFont不支持字体样式设定.但是font字体要求操作系统支持此字体会带来移植问题.
Font font = new Font(bf, 10);
font.setStyle(Font.BOLD);
font.getBaseFont();
//这里获取拼接pdf每个文件的长度,因为需要对应不同的页眉
List<FilePojo> list = getPageNumber(files);
int page = 0;
for (FilePojo filePojo : list) {
page += filePojo.getPageNumber();
}
// 生成pdf 创建 页眉及页脚
int s = 0;
for (int size = 0; size < list.size(); size++) {
// 获取第一个文件pdf,并处理
if (s < list.get(0).getPageNumber()) {
// 证明这是第一个文件的
for (int i = 1; i <= list.get(size).getPageNumber(); i++) {
// 初始值
Append(stamper, reader, font, i,null,null);
s++;
}
} else if (s >= list.get(0).getPageNumber() && s <= page) {
for (int i = 1; i <= list.get(size).getPageNumber(); i++) {
s++;
//判断当前对象是否需要进行添加页眉,需要 -- 传递页眉名称 不需要则不处理
//if(){
//}
Append(stamper, reader, font, s, list.get(size).getFileName(),"123");
}
}
}
stamper.close();
return savePath;
}
private static void Append(PdfStamper stamper, PdfReader reader, Font font, int i,String title,String type) {
if(type!=null) {
//代表需要页眉,所以,需要增加页眉.
// 写入下划线
//读取当前文件的内容
PdfContentByte over2 = stamper.getOverContent(i);
// 开始写入文本
over2.beginText();
// 设置字体和大小
over2.setFontAndSize(font.getBaseFont(), 12);
// 设置字体的输出位置(位置是可以通过PdfObject 获取的)
over2.setTextMatrix(0, 815);
// 要输出的text
over2.showText("当前页数" + i + "");
// 设置字体颜色
over2.setColorFill(BaseColor.BLUE);
}
if(title!=null) {
写入不同的页眉。方法跟上面一致,但是不可以重复使用,因为页眉 页脚 需要写在不同的位置;
}
毕竟是写代码的,文字描述可能是不尽完全,所以,全部在代码里面写了注释。
itext对已经存在的pdf添加页眉页脚相关推荐
- itext给已有pdf添加页眉页脚
网上百度到的基本都是生成pdf的时候,添加页眉页脚,但是假如对已有的pdf添加页眉页脚就比较麻烦,突然想到了可以曲线救国,用itext进行复制pdf的时候,在添加页眉页脚,最后可以成功的. 生成pdf ...
- itext总页数_itext 生成pdf文件添加页眉页脚
原文来自:https://www.cnblogs.com/joann/p/5511905.html 我只是记录所有jar版本,由于版本冲突及不兼容很让人头疼的,一共需要5个jar, 其中itextpd ...
- 【Itext】7步制作Itext5页眉页脚pdf实现第几页共几页
itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...
- itext Pdf页眉/页脚/水印
package com.company.common.core.utils.itext;import com.itextpdf.text.*; import com.itextpdf.text.pdf ...
- Itext pdf的页眉页脚
1.概述 iText5中并没有之前版本HeaderFooter对象设置页眉和页脚,可以利用PdfPageEventHelper来完成页眉页脚的设置工作.PdfPageEventHelper中包含以下事 ...
- Itext 学习笔记(六) pdf的页眉页脚
转载一篇blog 源地址为: [url] http://blog.chinaunix.net/uid-122937-id-3052063.html [/url] 1.概述 iText5中并没有之前版本 ...
- C# 添加PDF页眉/页脚
这篇文章主要介绍了C# 添加PDF页眉/页脚的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 概述 页眉页脚是一篇完整.精致的文档的重要组成部分.在页眉页脚处,可 ...
- XMLWorkerHelper生成pdf文件添加页眉页脚
一.Controller代码 import java.io.ByteArrayInputStream; import java.io.FileOutputStream; import java.io. ...
- 如何给PDF文件添加页眉页脚,一分钟轻松搞定
如何给PDF文件添加页眉页脚?很多在使用PDF文件的人都会有这样的问题,不知道如何给PDF文件添加页眉页脚,想要给PDF文件添加页眉页脚需要使用到PDF编辑器,下面就使用迅捷PDF编辑器为大家操作一下 ...
最新文章
- JavaScript继承详解(四)
- webdriver Google-chrome crashed
- 千万级流量的大型分布式系统架构设计
- python输入列表方法_Python用input输入列表的方法
- ylb:SQL 常用函数
- postman测试post请求
- ACPI引起linux系统无故重启
- Oracle 用拼接字符串更新表 测试
- Linux 系统关于应该把程序安装在目录 /usr 还是目录 /usr/local 下的思考
- 大学计算机入学教育心得1000,新学期入学教育心得体会1000字
- 个人名义申请的支付接口。支付聚合网站汇总
- magento paypal付款实现前台切换货币付款
- 【VMCloud云平台】SCAP(二)
- 4.MySQL优化---多表查询优化
- linux中ps-p,linux下ps命令
- libmodbus 开发说明
- 大数据分析之纳税人画像-实现和优化思路
- java调用js tel,jQuery国际电话区号选择插件intlTelInput.js
- MTK OTG 功能总结(UVC)
- C# ip地址的查询
热门文章
- android清理缓存功能吗,android实现清理缓存功能
- 《Self-supervised Complex Network for Machine Sound Anomaly Detection》论文阅读
- 彻底理解0-1背包问题
- 感谢老男孩老师的教导
- 命令行启动mysql拒绝访问
- 如何避免特效渲染出错?
- TX Text Control 30.0 [Core]Crack
- 技校学计算机工资,本人想去技校学习计算机,请问计算机好学吗,这个行业怎么样,学成之后工资如何...
- 搭建IIS出现 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容解决办法
- 天猫双11移动端交易额创全球移动电子商务新纪录