itextpdf-PdfStamper写入文件流到ByteArrayOutputStream注意事项

itextpdf-PdfStamper写入文件流到ByteArrayOutputStream注意事项

1、前情提要

最近做项目时有个需求,把图片合成pdf并且加水印,然后通过base64返回到前端。本来想的很简单,使用PdfStamper,把参数FileOutputSteam换成ByteArrayOutputSteam。之后通过toByteArray()返回字节数组。最后在转成base64字符串。

java 复制代码
baos = new ByteArrayOutputStream();
stamper = new PdfStamper(reader, baos );
...一系列其他操作
bytes = baos .toByteArray();

2、通过上述代码获取到的byte[]数组一直为空,可是当我使用FileOutputStream时,又能正确的输出文件,百思不得其解,折腾了好几个小时。
3、通过我不断努力,不停的搜来搜去,终于找到了一个靠谱的回答,创建PdfStamper之后,立即

获取字节数组baos .toByteArray(),是获取不到的,需要先执行stamper.close()操作。

java 复制代码
baos = new ByteArrayOutputStream();
stamper = new PdfStamper(reader, baos );
...一系列其他操作
// 执行关闭操作
stamper.close()
bytes = baos .toByteArray();

参考

https://stackoverflow.com/questions/61270495/save-pdf-to-bytearray-using-itext-in-java
小尾巴~~

只要有积累,就会有进步

相关推荐
大强同学10 小时前
Adobe DC 2025安装教程
windows·adobe·pdf
诸葛大钢铁16 小时前
如何免费在线PDF转换成Excel
职场和发展·pdf·excel
开开心心就好17 小时前
Word图片格式调整与转换工具
java·javascript·spring·eclipse·pdf·word·excel
icloudelectron18 小时前
Altium Designer AD如何输出PIN带网络名的PDF装配图
pdf
沉到海底去吧Go18 小时前
【软件工具】基于PDF文件内容识别的改名软件,PDF根据内容自动重命名,如何识别pdf内容并做文件命名,PDF批量改名
pdf·扫描pdf文档批量文件改名·批量提取识别pdf中的特定字段·根据pdf某个区域内容改名·图片识别工具
EchoZeal18 小时前
【实测有效】Edge浏览器打开部分pdf文件显示空白
edge·pdf·adobe acrobat
敲代码的小吉米1 天前
前端上传el-upload、原生input本地文件pdf格式(纯前端预览本地文件不走后端接口)
前端·javascript·pdf·状态模式
东方巴黎~Sunsiny2 天前
EasyExcel导出excel再转PDF转图片详解
pdf·excel
aklry2 天前
uniapp实现在线pdf预览以及下载
前端·pdf·uni-app
繁依Fanyi2 天前
我的 PDF 工具箱:CodeBuddy 打造 PDFMagician 的全过程记录
java·pdf·uni-app·生活·harmonyos·codebuddy首席试玩官