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

只要有积累,就会有进步

相关推荐
DeskUI~~11 小时前
倚天剑术32--使用PDF的内容搜索功能帮你检查报销票据
pdf
l1t12 小时前
利用omnicoder-9b模型编写把扫描版pdf转成文字版pdf的程序
人工智能·python·pdf
weixin_6681 天前
Agent 应该中 PDF 工具方案分析报告 - AI分析分享
人工智能·pdf
fjhcom1 天前
PDF与图片互转WEB应用开发教程
前端·pdf·图片·web应用·streamlit
polaris06302 天前
【Spring Boot 实现 PDF 导出】
spring boot·后端·pdf
南风微微吹2 天前
【2026大英赛】全国大学生英语竞赛C类历年真题试卷及答案电子版PDF(2012-2025年)
pdf·大英赛
南风微微吹2 天前
【专八】英语专业八级TEM8历年真题及答案解析电子版PDF(2009-2025年)
pdf·英语专八
西门吹-禅2 天前
【pdf 翻译免费】
pdf
薛定谔之死猫2 天前
Ruby简单粗暴把图片合成PDF文档
java·pdf·ruby
QD_ANJING3 天前
3月面大厂前端岗总结笔记(含答案)
前端·javascript·笔记·面试·职场和发展·前端框架·pdf