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

只要有积累,就会有进步

相关推荐
web打印社区7 小时前
2026最新Web静默打印解决方案,无插件无预览,完美替代Lodop
前端·javascript·vue.js·electron·pdf
其实防守也摸鱼11 小时前
带你了解与配置phpmyadmin
笔记·安全·网络安全·pdf·编辑器·工具·调试
sensor_WU12 小时前
【原创】PDF 加密、管控终极工具
pdf·pdf 加密·pdf 转 exe·pdf aes256·pdf 密码
AI刀刀14 小时前
手机AI怎么导出pdf
人工智能·ai·智能手机·pdf·deepseek·ds随心转
eastyuxiao15 小时前
OpenClaw 免费 PDF 技能组合 + 一键指令(零收费、无订阅)
pdf
eastyuxiao16 小时前
OpenClaw的PDF处理Skill收费吗?
人工智能·pdf
Tdsay_16 小时前
PDF 加水印怎么做?一次真实使用在线工具的体验分享(免费、本地处理)
pdf·pdf加水印·土豆丝在线工具
2501_9307077816 小时前
使用C#代码在PDF文件中添加图片水印
pdf
阳光Cherry梦16 小时前
下载利用pdfjs提供的viewer.html展示pdf文件
pdf
qq_4275398316 小时前
iframe 嵌入预览 PDF ,禁用右键菜单、打印下载按钮不展示
前端·javascript·vue.js·pdf