【发布时间】:2019-06-30 13:36:23
【问题描述】:
我正在使用 iText 7,特别是 HtmlConverter.ConvertToDocument 方法,将 HTML 转换为 PDF。问题是,我真的不想在我的服务器上创建 PDF 文件,我宁愿在内存中做所有事情,然后将其发送到用户浏览器以便他们下载。
谁能告诉我一个如何使用这个库的示例,而不是将文件写入 MemoryStream 以便我可以直接将其发送到浏览器?
我一直在寻找示例,我似乎只能找到那些引用文件输出的示例。
我尝试了以下方法,但不断收到有关无法访问已关闭的内存流的错误。
public FileStreamResult pdf() {
using (var workStream = new MemoryStream())
using (var pdfWriter = new PdfWriter(workStream)) {
pdfWriter.SetCloseStream(false);
using (var document = HtmlConverter.ConvertToDocument(html, pdfWriter)) {
//Returns the written-to MemoryStream containing the PDF.
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
return new FileStreamResult(workStream, "application/pdf");
}
//return new FileStreamResult(workStream, "application/pdf");
}
}
【问题讨论】: