我有一个在服务器端调用静态 WebMethod 的 AJAX 调用。 服务器端方法返回一个包含 PDF 文件字节流的 MemoryStream。 然后,我如何在 AJAX 调用的成功方法中在客户端使用此 PDF 字节流,以某种方式触发 PDF 文件下载。 我也不会做什么页面的完整回发。
我将其用作引用:http://forums.asp.net/t/1377154.aspx?Download+from+Javascript 但我想有一个完整的例子来实现这一点。
function generatePDF(param1, param2, param3) {
$.ajax({
type: 'POST',
url: 'Page.aspx/GeneratePDF',
data: '{ "param1" : "' + param1+ '", "param2" : "' + param2+ '", "param3" : "' + param3+ '" }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (pdf) {
//from here somehow, download the generated PDF file
}
});
}
最佳答案
我个人没有这样做过,但我首先要尝试的是:
在服务器端动态构建合适的HTML文档和CSS 使用 phantomJS 呈现该文档 告诉 phantomJS 将该文档转换为 PDF,保存在临时文件中 通过将临时 PDF 文件写入响应正文,将 PDF 作为 HTTP 响应发回 删除临时文件 如果您在内容类型、内容处置等方面苦苦挣扎,如果磁盘上有一个有效的 pdf 文件并且只需将该数据写入 HTTP 响应,您就不必担心这些。使用正确的标题,您应该能够要求浏览器显示 PDF 或将其视为要保存为下载的文件。
关于c# - 将服务器端生成的 PDF 发送到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18913987/