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

只要有积累,就会有进步

相关推荐
ComPDFKit1 天前
用 ComPDF DocSlight 提取 PDF 表格:三种样本实测与 Python 接入
开发语言·python·pdf·pdf表格提取
yiyideda1 天前
保单OCR工程实践:PDF/扫描件/纸质拍照三种输入下的字段结构化方案
计算机视觉·pdf·ocr·车险保单识别·保单ocr识别
Lhan.zzZ1 天前
Qt/QML:业务记录单展示、签名确认与 PDF 导出开发
c++·qt·pdf
万祥Python2 天前
2026年6月英语六级真题及答案解析(第一、二、三套全PDF)
pdf
Latchh2 天前
PDF打开不要密码却显示已加密,前端怎么判断
前端·图像处理·人工智能·计算机视觉·pdf
原子延迟2 天前
PDF权限密码和打开密码差在哪?我拿7份文件试了
图像处理·人工智能·计算机视觉·pdf
zxanz12 天前
Gotenberg PDF 转换服务曝出高危 RCE 安全漏洞
pdf
dotnet全栈开发3 天前
火爆全网的《高性价比人生指南》,613条建议最新完整版PDF来了!
pdf
零基础1233 天前
PDF 处理工具全攻略:pdf24、PDFgear、Adobe Acrobat DC 与 Stirling-PDF 深度对比
java·开发语言·pdf
南风微微吹3 天前
考研数学一、二、三历年真题及答案解析PDF(1987-2026年)
考研·pdf