Flutter Web部署后pdf包无法生成PDF问题求助
解决Flutter Web部署后PDF生成无响应问题
针对本地debug/release模式运行正常、上线后点击生成PDF按钮无反应的问题,可从以下方向排查解决:
排查CORS跨域限制
线上环境的CORS策略可能拦截pdfjs加载外部资源的请求。建议将pdf.worker脚本和cmap资源下载到项目web目录,改用相对路径加载:<script type="text/javascript"> pdfjsLib.GlobalWorkerOptions.workerSrc = "/pdf.worker.min.js"; pdfRenderOptions = { cMapUrl: "/cmaps/", cMapPacked: true, }; </script>匹配pdf包与pdfjs版本兼容性
你使用的Flutter pdf包可能和指定的pdfjs-dist@3.4.120版本不兼容。查看pdf包官方文档,确认其依赖的pdfjs版本,对应调整资源版本。查看浏览器控制台报错
上线后打开浏览器开发者工具(F12),切换到Console标签,点击生成PDF按钮,查看是否存在404、CORS等报错信息,根据报错直接定位问题。确认资源打包配置
若使用本地资源,需在pubspec.yaml中添加资源配置,确保构建时资源被正确打包:assets: - web/pdf.worker.min.js - web/cmaps/同时检查部署工具是否正确复制了这些资源到线上服务器。
修正PDF生成逻辑中的路径问题
确保生成PDF的代码中没有依赖本地绝对路径的逻辑,线上环境路径结构与本地不同,需使用相对路径或正确的Flutter assets路径加载字体、图片等资源。
内容的提问来源于stack exchange,提问作者Snehil Tejani
相关产品推荐
相关产品推荐

