1

我有一个由我的页面生成的 5-80 页 PDF。我有一个字节数组中的这个 PDF,如果需要,我可以临时保存到文件中。

我宁愿不让用户下载然后打印 PDF。有没有一种相当简单的方法可以让用户打印这个文件?最好的情况是我可以以某种方式直接从byte[]or打印MemoryStream

4

2 回答 2

2

你应该简单地return File(stream, fileName, "application/pdf")从一个 MVC 动作。

浏览器将使用适当的插件呈现 PDF,并且(通常)会提供一个打印按钮。

于 2012-07-31T20:48:53.277 回答
1

您可以使用该Controller.File方法返回文件

public ActionResult GetFile()
{    
   byte[] bytes = GetYourByteArrayForPDF();
   return File(bytes, "application/pdf","somefriendlyname.pdf");    
}

假设GetYourByteArrayForPDF您的方法返回 PDF 文件的字节数组。

这会将文件内容直接提供给用户可以打印/保存的浏览器。

从 Web 应用程序中,您不能简单地调用打印命令并在客户端计算机中打印某些内容。除非您有一些 activex 控件(仅 IE 支持)/browser 插件,否则用户必须手动执行此操作。

于 2012-07-31T20:59:11.010 回答