【发布时间】:2012-07-10 01:38:19
【问题描述】:
所以我的问题是:我有一个 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,但不显示它,因为 FF 需要存在扩展名,但在这种情况下 data-URI 没有。我在这里坚持的原因,如果 chrome 和 safari 让它工作,那么必须有 FF 和 IE 的解决方案
我知道有一些相关的问题,但不是确切的问题,现在也有点老了。我知道一种解决方法是在服务器端生成 pdf,但我想在客户端生成它。
所以请聪明的人,是否有可能通过一些黑客或额外的 JS 下载插件?
【问题讨论】:
-
你好???有没有人对这个问题有一些答案..可能是约翰·雷西格 ;-)
-
@owsata,同样的问题!它只是打开窗口!你找到解决问题的方法了吗?请告诉我们。谢谢
-
@FabioMilheiro Nope 没有发现任何有用的东西。最终的结果是,因为浏览器处理数据:应用程序的想法不同,所以一开始并没有太多使用它。所以最后的手段->从服务器发送现成的pdf。
-
stackoverflow.com/a/16245768/7282741 这个解决了我的问题并节省了我的周末。
标签: javascript internet-explorer firefox pdf base64