带密码保护的PDF无法在移动端浏览器Iframe中显示的问题求助
带密码保护的PDF无法在移动端浏览器Iframe中显示的问题求助
我正在Spring Boot项目里,尝试用JavaScript搭配Thymeleaf的th:inline="javascript"语法,把后端传过来的Base64格式PDF展示在iframe中。普通PDF都能正常渲染,但遇到带密码保护的PDF时,在移动端浏览器上完全打不开,不过部分桌面浏览器倒是能正常处理这个场景。
以下是我当前的实现代码:
<script th:inline="javascript"> let pdfBase64 = /*[[${pdfBase64}]]*/''; let blob = base64ToBlob(pdfBase64, 'application/pdf'); const blobUrl = URL.createObjectURL(blob); // Display PDF in iframe const iframe = document.getElementById('viewDoc'); function base64ToBlob(base64String, contentType) { contentType = contentType || ''; var sliceSize = 1024; var byteCharacters = atob(base64String); var byteArrays = []; for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { var slice = byteCharacters.slice(offset, offset + sliceSize); var byteNumbers = new Array(slice.length); for (var i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } var byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } return new Blob(byteArrays, { type: contentType }); } iframe.src = blobUrl; </script> <iframe id="viewDoc" width="100%" height="500px"></iframe>
备注:内容来源于stack exchange,提问作者patteera
相关产品推荐
相关产品推荐

