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

我有一个格式化的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文件。


任何帮助深表感谢


慕莱坞森
浏览 1038回答 3
3回答

斯蒂芬大帝

仅供参考,以下window.open("data:application/pdf," + encodeURI(pdfString));&nbsp;在Chrome中不再起作用。昨天,我遇到了相同的问题,并尝试了此解决方案,但没有成功(“不允许将顶部框架导航到数据URL”)。您不能再直接在新窗口中打开数据URL。但是,您可以将其包装在iframe中,并在如下所示的新窗口中打开它。=)let pdfWindow = window.open("")pdfWindow.document.write("<iframe width='100%' height='100%' src='data:application/pdf;base64, " + encodeURI(yourDocumentBase64VarHere)+"'></iframe>")

aluckdog

window.open("data:application/pdf," + escape(pdfString));&nbsp;上面的代码将编码后的内容粘贴到URL中。这就限制了URL中内容的长度,从而导致PDF文件加载失败(由于内容不完整)。

牛魔王的故事

您可能想使用数据URI进行探索。它看起来像。window.open("data:application/pdf," + escape(pdfString));我无法立即使它正常工作,这可能是因为提供的二进制字符串的格式。使用数据URI时,我通常也使用base64编码的数据。如果您能够通过后端编码传递内容,则可以使用。window.open("data:application/pdf;base64, " + base64EncodedPDF);希望这是您所需要的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript