【发布时间】:2018-04-26 01:28:25
【问题描述】:
我正在尝试为我的项目创建打印 PDF 文件。
这是我的代码
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult PrintPdf(SubmitReport model)
{
if (model == null)
{
throw new ArgumentNullException(nameof(SubmitReport));
}
var pdfModel = new PdfViewModel {HeaderImgUrl = AppDomain.CurrentDomain.BaseDirectory + @"Content\logo.jpg"};
var pdfStream = new MemoryStream(PdfGenerator.PayrollConfirmPdf(pdfModel).ToArray());
// TODO: what is the name of the pdf file?
var filename = string.Concat("PayrollConfirmation", DateTime.Now.ToString("yyyyMMddHHmmss"), ".pdf");
return File(pdfStream, "application/pdf", filename);
}
似乎一切正常,但函数返回后,什么也没有发生。我期待在我的本地机器上打开/下载一个 PDF 文件。但是,没有弹出窗口出现(好像什么都没发生一样)。
有什么想法吗?
提前致谢。
【问题讨论】:
-
检查
pdfStream的输出,是否返回包含PDF文件的字节数组?也试试这个:var pdfStream = new MemoryStream(PdfGenerator.PayrollConfirmPdf(pdfModel)).ToArray();. -
@TetsuyaYamamoto 是的,我强制它是字节数组:
byte[] pdfStream; var stream = new MemoryStream(); using (stream) { stream = PdfGenerator.PayrollConfirmPdf(pdfModel); pdfStream = stream.ToArray(); }问题仍然存在。
标签: c# asp.net-mvc pdf