gpt4 book ai didi

.net - 在 MVC 和 .NET 中使用 iText 7 生成供下载的 PDF

转载 作者:行者123 更新时间:2023-12-02 00:22:45 25 4
gpt4 key购买 nike

我一直在尝试让 MVC 应用程序生成 PDF(填充有数据)并提示将其下载给用户。我已经设置了一个测试方法,只是为了看看它是如何完成的,并且我正在尝试在内存中创建文档,因为我知道如果你只是向它传递一个字节流,浏览器并不总是知道该怎么做。

这是我正在使用的方法:

    //Test Report
public ActionResult Report()
{
MemoryStream stream = new MemoryStream();
PdfWriter wri = new PdfWriter(stream);
PdfDocument pdf = new PdfDocument(wri);
Document doc = new Document(pdf);
doc.Add(new Paragraph("Hello World!"));
doc.Close();

return new FileStreamResult(stream, "application/pdf");
}

每次我尝试加载 Report() 方法时,我都会收到一条错误消息,提示无法访问该流,因为它已关闭。我已经研究了几个不同的解释来解释为什么会这样,但所有这些解释似乎都是针对 iTextSharp 和 iText 5,所以这些解决方案都不起作用。

我在这里做错了什么?

最佳答案

尝试处置任何 IDisposable 对象并返回原始数组

public ActionResult Report()
{
byte[] pdfBytes;
using (var stream = new MemoryStream())
using (var wri = new PdfWriter(stream))
using (var pdf = new PdfDocument(wri))
using (var doc = new Document(pdf))
{
doc.Add(new Paragraph("Hello World!"));
doc.Flush();
pdfBytes = stream.ToArray();
}
return new FileContentResult(pdfBytes, "application/pdf");
}

关于.net - 在 MVC 和 .NET 中使用 iText 7 生成供下载的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54892860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com