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

iOS端react-native-pdf加载部分base64格式PDF报错load pdf failed如何解决

iOS端react-native-pdf部分PDF加载失败修复方案
  • 首先关闭cache参数测试
    react-native-pdf的iOS端对data URI格式的source兼容cache:true存在已知缺陷,超长base64字符串在缓存写入时会被截断,直接导致解析失败。修改代码如下:
setSource({uri:`data:application/pdf;base64,${documentBinary}`, cache:false})
  • base64转本地临时文件加载(兼容性最高方案)
    iOS原生PDFKit对直接传入的base64格式PDF支持度有限,尤其是包含特殊内嵌字体、非标准压缩格式的PDF,都会触发解析失败。可以先把base64内容写入本地临时PDF文件,再传入本地路径加载,示例代码如下:
import RNFS from 'react-native-fs';
import { Platform } from 'react-native';

const loadPdf = async (documentBinary) => {
  const tempPdfPath = `${RNFS.TemporaryDirectoryPath}/temp_${Date.now()}.pdf`;
  // 把base64写入本地pdf文件
  await RNFS.writeFile(tempPdfPath, documentBinary, 'base64');
  setSource({
    uri: Platform.OS === 'ios' ? `file://${tempPdfPath}` : tempPdfPath,
    cache: false
  });
}

组件调用无需修改,加载完成后可按需删除临时文件释放存储空间。

  • 修复异常PDF格式
    部分加载失败的PDF本身不符合标准PDF 1.7规范,多是旧版编辑器导出、文件头损坏或者内嵌了iOS不支持的字体导致,用桌面端PDF编辑工具重新导出为标准PDF格式后即可正常加载。
  • 升级依赖版本
    将react-native-pdf升级到最新正式版,同时确认iOS端原生依赖已正确链接,旧版本对大于20M的base64格式PDF存在内存溢出问题,会直接抛出加载失败错误。

内容的提问来源于stack exchange,提问作者eyal gromzin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:45:04