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
小尾巴~~

只要有积累,就会有进步

相关推荐
疯狂敲代码的老刘2 小时前
PDFSam Basic:轻量开源的 PDF 拆分合并利器
pdf·工具·pdf工具·pdfsam
开开心心_Every21 小时前
在线看报软件, 22家知名报刊免费看
linux·运维·服务器·华为od·edge·pdf·华为云
开开心心就好1 天前
轻松加密文件生成exe,无需原程序解密
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
我在这里呀1 天前
免费在线PDF翻译工具(保留排版,可导出Word)
pdf·word
软件工程小施同学1 天前
区块链论文速读 CCF A--VLDB 2025 (2) 附pdf下载
pdf·区块链
❀͜͡傀儡师1 天前
Spring Boot 实现PDF水印的完整指南
spring boot·后端·pdf
大黄说说2 天前
Python 实战指南:一键批量旋转 PDF 页面方向
开发语言·python·pdf
Jack.Huangjh3 天前
ABAP PDF
pdf
北极象3 天前
Flying-Saucer HTML到PDF渲染引擎核心流程分析
前端·pdf·html
一只酸奶牛^_^3 天前
java实现pdf添加水印
java·pdf