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

只要有积累,就会有进步

相关推荐
Geeker554 小时前
适用于 Windows的 5 个最佳 PDF 转 Word 转换器
ios·智能手机·pdf·电脑·word·手机·iphone
张飞的猪大数据5 小时前
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
大数据·spark·pdf
虫小宝7 小时前
如何在Java中实现PDF生成
java·开发语言·pdf
2301_7657930414 小时前
PDF内存如何变小,PDF内存压缩,PDF内存变小怎么调整
pdf
春蕾夏荷_72829772519 小时前
vs+qt5.0 使用poppler-qt5 操作库获取pdf所有文本输出到txt操作
qt·pdf·poppler-qt5·poppler
weixin_578371881 天前
一个pdf分成,一个pdf分成两个,单个pdf分成多个
pdf
罗汉爷1 天前
springboot集成tika解析word,pdf,xls文件文本内容
spring boot·pdf·word·tika解析文本
archko1 天前
android pdf框架-11,查看图片
pdf
117URL_wqx1 天前
Win11系统文件夹预览无法预览PDF文件,PDF阅读器是adobe acrobat
pdf
dntktop1 天前
全能PDF工具集 -- PDF Shaper Professional v14.3 特别版
pdf