如何显示base64编码的pdf?

新手上路,请多包涵

我必须在新标签中显示 base64 pdf。我正在使用下面的代码

 var windo = window.open("", "");
 var objbuilder = '';
 objbuilder += ('<embed width=\'100%\' height=\'100%\'  src="data:application/pdf;base64,');
 objbuilder += (fileData);
 objbuilder += ('" type="application/pdf" />');
 windo.document.write(objbuilder);

它在 FireFox 中工作,在 Chrome 和 IE 中不工作。我什至尝试使用标签,但输出相同,在 FF 中工作,但在 Chrome 和 IE 中没有。

我查看了下面的 JsFiddles,它们在 FF 中工作但不在 Chrome 中,

http://jsfiddle.net/yLx2W/

http://jsfiddle.net/yLx2W/1/

我的 Chrome 版本是:版本 54.0.2840.99 m

火狐版本:49.0.2

有没有人有什么想法,请分享。

提前致谢

原文由 dnyaneshwar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
2 个回答

它应该适用于您可以使用的 Chrome

<iframe src="data:base64...">

<object data="data:base64...">

我在 IE 中遇到了同样的问题: 无法 显示带有 base64 字符串的 pdf。

我必须在服务器上生成临时文件才能用 IE 显示它们,他只使用路径 显示现有文件

您仍然可以使用 JS 库 来显示您的 pdf,例如 PDF.js

原文由 Alexis 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于那些仍然做不到的人,我在别人的回答中找到了这个,但我不记得是谁……

 var objbuilder = '';
objbuilder += ('<object width="100%" height="100%"
data="data:application/pdf;base64,');
objbuilder += (myBase64string);
objbuilder += ('" type="application/pdf" class="internal">');
objbuilder += ('<embed src="data:application/pdf;base64,');
objbuilder += (myBase64string);
objbuilder += ('" type="application/pdf"  />');
objbuilder += ('</object>');

var win = window.open("#","_blank");
var title = "my tab title";
win.document.write('<html><title>'+ title +'</title><body style="margin-top:
0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px;">');
win.document.write(objbuilder);
win.document.write('</body></html>');
layer = jQuery(win.document);

这样我们就可以在新标签页中打开 pdf。

原文由 CHACO 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题