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

只要有积累,就会有进步

相关推荐
2501_9071368214 小时前
PDF Splitter Pro - PDF页面分割器
pdf·软件需求
2023框框1 天前
给PDF书籍添加书签
pdf
月屯1 天前
Pandoc 之--pdf-engine
java·开发语言·pdf
开开心心_Every2 天前
Word转PDF工具,免费生成图片型文档
网络·笔记·pdf·word·powerpoint·excel·azure
一个无名的炼丹师2 天前
[硬核实战] 解锁多模态RAG:构建能“看懂”PDF复杂图表的智能问答系统
人工智能·python·pdf·多模态·rag
非凡ghost3 天前
Xournal++(PDF文档注释工具) 中文绿色版
学习·pdf·生活·软件需求
MonkeyKing_sunyuhua3 天前
使用ARQ做PDF OCR和 图片OCR的任务的方案
pdf·ocr
2501_930707783 天前
如何使用C#代码在 PDF 中添加或删除附件
pdf
m5655bj3 天前
如何使用 Python 调整 PDF 页面顺序?
python·pdf
YuanYWRS3 天前
办公基础:实现PDF中表单不改变格式的情况下转成excel
pdf·excel