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

只要有积累,就会有进步

相关推荐
大山运维11 小时前
好用的在线PDF转图片工具,支持100MB文件
pdf
hereitis贝壳13 小时前
如何将JPG、PNG、GIF图像转换成PDF、SVG、EPS矢量图像
pdf·svg·矢量
antzou13 小时前
Apache FOP实践——pdf模板引擎
xml·pdf·办公软件·效率工具·模板引擎·fop·xsl
宇智波波奶茶13 小时前
ofd文件转pdf
java·pdf
开开心心就好13 小时前
PDF转图片工具,一键转换高清无损
服务器·前端·智能手机·r语言·pdf·excel·batch
咚咚?17 小时前
电子签章(PDF)
java·pdf
阿丽塔~1 天前
【vue3+vue-pdf-embed】实现PDF+图片预览
javascript·vue.js·pdf
鲁Q同志1 天前
java导入pdf(携带动态表格,图片,纯java不需要模板)
java·开发语言·pdf
努力奋斗的小涛涛1 天前
java导出pdf(使用html)
java·pdf
程序视点2 天前
PDF转Word免费工具!批量处理PDF压缩,合并, OCR识别, 去水印, 签名等全功能详解
pdf·pdf压缩·pdf编辑软件·pdf转换器·免费pdf工具·pdf转word免费工具·批量处理pdf的软件推荐