You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带密码保护的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:39:35