java生成多页pdf_由1个PDF模板创建的多页PDF

本文档介绍了一个使用Java和itextsharp库从PDF模板生成多页PDF的问题。通过遍历数据模型列表,填充模板并将其添加到PDF中。问题在于内存流的管理,最终找到了正确释放和重用内存流的方法,实现了在网页上显示PDF供打印的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是我的情况,我有一个数据模型列表,它将给定的PDF模板填充到一个大的pdf中,并显示在网页上供客户端打印文件 . (没有本地副本) . 我使用kuujinbo的例子https://stackoverflow.com/a/8525007/5533303但由于某种原因我可以't let the memory stream to bind when i am going to display the pdf on page. (the error is can't读取封闭的内存流 . )我的系统环境是带有最新itextsharp的MVC 5 .

20151107更新:找到原因 . 总体代码是正确的但在循环结束时我应该把byteInfo = Masterstream.ToArray();在smartcopy之外使用但在文档内部使用 . 然后创建一个新的内存字符串以捕获byteinfo并返回到视图 .

List PrintList = ( List )Session["GetDAta"];

BaseFont baseChineseFont = BaseFont.CreateFont(@"~~~~~~~~~",

BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

MemoryStream Masterstream = new MemoryStream();

byte[] byteInfo;

using (Document document = new Document())

{

using (PdfSmartCopy copy = new PdfSmartCopy(document, Masterstream))

{

document.Open();

foreach (Datamodel childnode in PrintList)

{

PdfReader pdfReader = ne

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值