为了账号安全,请及时绑定邮箱和手机立即绑定

使用JavaScript在新窗口中打开PDF字符串

使用JavaScript在新窗口中打开PDF字符串

慕莱坞森 2019-12-26 14:14:41
我有一个格式化的PDF字符串,看起来像%PDF-1.73 0 obj<<< /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R/Contents 4 0 R>> endobj4 0 obj<> streamx��R=o�0��+��=|vL�R���l�-��ځ,���Ge�JK����{���Y5�����Z˯k�vf�a��`G֢ۢ��Asf�z�ͼ��`%��aI#�!;�t���GD?!���<�����B�b��...00000 n 0000000703 00000 n 0000000820 00000 n 0000000926 00000 n 0000001206 00000 n 0000001649 00000 n trailer << /Size 11 /Root 10 0 R /Info 9 0 R >>startxref2015%%EOF我正在尝试在新窗口中以PDF文件形式打开此字符串。每当我使用window.open()并将字符串写入新选项卡时,它都认为该文本应为HTML文档的内容。我希望它能够识别出这是一个PDF文件。任何帮助深表感谢
查看完整描述

3 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

仅供参考,以下


window.open("data:application/pdf," + encodeURI(pdfString)); 

在Chrome中不再起作用。昨天,我遇到了相同的问题,并尝试了此解决方案,但没有成功(“不允许将顶部框架导航到数据URL”)。您不能再直接在新窗口中打开数据URL。但是,您可以将其包装在iframe中,并在如下所示的新窗口中打开它。=)


let pdfWindow = window.open("")

pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64, " + encodeURI(yourDocumentBase64VarHere)+"'></iframe>")


查看完整回答
反对 回复 2019-12-26
?
aluckdog

TA贡献1847条经验 获得超7个赞

window.open("data:application/pdf," + escape(pdfString)); 

上面的代码将编码后的内容粘贴到URL中。这就限制了URL中内容的长度,从而导致PDF文件加载失败(由于内容不完整)。


查看完整回答
反对 回复 2019-12-26
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您可能想使用数据URI进行探索。它看起来像。


window.open("data:application/pdf," + escape(pdfString));

我无法立即使它正常工作,这可能是因为提供的二进制字符串的格式。使用数据URI时,我通常也使用base64编码的数据。如果您能够通过后端编码传递内容,则可以使用。


window.open("data:application/pdf;base64, " + base64EncodedPDF);

希望这是您所需要的


查看完整回答
反对 回复 2019-12-26
  • 3 回答
  • 0 关注
  • 1033 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信