我的问题是:我从服务器获取了一个 PDF 文件的 base64 字符串,我想要使用这个字符串来直接在浏览器中显示 PDF,或者在点击链接时提供“另存为...”选项。以下是我正在使用的代码:
<!doctype>
<html>
<head>
<title>jsPDF</title>
<script type="text/javascript" src="../libs/base64.js"></script>
<script type="text/javascript" src="../libs/sprintf.js"></script>
<script type="text/javascript" src="../jspdf.js"></script>
<script type="text/javascript">
function demo1() {
jsPDF.init();
jsPDF.addPage();
jsPDF.text(20, 20, 'Hello world!');
jsPDF.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
// Making Data URI
var out = jsPDF.output();
var url = 'data:application/pdf;base64,' + Base64.encode(out);
document.location.href = url;
}
</script>
</head>
<body>
<a href="javascript:demo1()">Run Code</a>
</body>
</html>
在Chrome和Safari中正常工作。Firefox识别PDF文件,但由于在这种情况下data-URI中没有扩展名,因此不显示它。我坚持的原因是,如果Chrome和Safari可以使其正常工作,那么还必须有解决方案适用于Firefox和IE。
我知道有一些相关问题,但并不是完全相同的问题,而且现在也有点过时了。我知道一种解决方法是在服务器端生成PDF文件,但我想在客户端生成它。
请问聪明的人们,是否可以通过某些技巧或附加的JS下载插件来实现?