Nic*_*ver 16
jQuery不能(因为JavaScript不能)从数据创建PDF,没有......它可以从你的服务器获得一个(就像任何其他请求一样),但它不能生成一个.JavaScript根本没有一种机制(尽管现在有一些HTML5选项正在实现)来创建/保存跨浏览器的文件,尤其是二进制文件.
如果有可能,服务器端是生成PDF的更好选择。对于大多数用户而言,它可能会更快,并且通过标准HTTP请求返回文件比当前客户端选项更健壮。
也就是说,该库将在客户端生成PDF:http : //snapshotmedia.co.uk/blog/jspdf
在支持数据URI的浏览器中,它可以直接返回PDF。在其他浏览器中,您可以将其与名为Downloadify的Flash组件结合使用以实现相同目的。
如果您成功从AJAX检索服务器中的PDF数据并且需要将其下载下载给用户,则只需一点点的base64编码即可完成。如果我理解正确,您很可能会遇到服务器成功返回PDF或其他某种数据类型(例如XML)的情况。在这种情况下,您有两个步骤来处理请求:
1)通过标题确定内容类型。这是一个根据响应拆分处理程序的示例:
$.ajax({
type: "POST", url: "/test", data: someData, success: function(response, status, xhr){
var ct = xhr.getResponseHeader("content-type") || "";
if (ct.indexOf(‘xml’) > -1) {
// handle xml here
}
if (ct.indexOf(‘pdf’) > -1) {
// handle pdf here
}
}
});
Run Code Online (Sandbox Code Playgroud)
2)一旦有了PDF内容,就可以使用base64数据技巧重定向浏览器以显示pdf。首先,将数据内容编码为base64。有许多库可以帮助您使用Javascript完成此操作。然后,通过document.location.href返回您的内容:
document.location.href = 'data:application/pdf;base64,' + base64PDFData;
Run Code Online (Sandbox Code Playgroud)
那应该得到您所需要的。从理论上讲,您可以使用此方法将任何内容类型转发到浏览器。
编辑:
我应该提到,由于安全限制,数据uri将不幸地无法在IE中运行。
| 归档时间: |
|
| 查看次数: |
80122 次 |
| 最近记录: |