如何将base64转换为pdf React-Native

问题描述 投票:0回答:3

我使用

react-native
创建了一个应用程序,并有一些 base64 数据 API。我想将 base64 数据转换为 pdf 格式。如果你有什么想法 请帮我。谢谢。

android ios reactjs react-native base64
3个回答
5
投票

您可以使用react-native-pdf包(https://www.npmjs.com/package/react-native-pdf)。如果你想在你的应用程序中显示 pdf,这个包将非常有用,因为它支持从 iOS 和 Android 的 Base64 字符串加载 PDF。您可以从 Base64 数据中指定 pdf 的来源,如示例所示:

{uri:"data:application/pdf;base64,JVBERi0xLjcKJc..."}


1
投票

我假设,

converting to PDF
saving the base64 format data as PDF in some file

下面的代码可以帮助你做同样的事情,

let fPath = Platform.select({
   ios: fs.dirs.DocumentDir,
   android: fs.dirs.DownloadDir,
});

fPath = `${fPath}/pdfFileName.pdf`;

if (Platform.OS === PlatformTypes.IOS) {
    await fs.createFile(fPath, base64Data, "base64");
} else {
    await fs.writeFile(fPath, base64Data, "base64");
}
// RNFetchBlob can be used to open the file

0
投票

您可以通过使用 React Native 中的

rn-fetch-blob
库来实现这一点。首先,请确保安装它:

npm install rn-fetch-blob

然后,创建一个函数来下载文件并将其保存到本地。

import RNFetchBlob from 'rn-fetch-blob';

async function downloadFile(url: string, fileName: string /* eg : file.pdf; image.png, document.csv*/) {
  let dirs = RNFetchBlob.fs.dirs;
  let path = `${dirs.DownloadDir}/${fileName}`; //set your path 
 

  try {
    const res = await RNFetchBlob.config({
      fileCache: true,
      addAndroidDownloads: {
        useDownloadManager: true,
        notification: true,
        mediaScannable: true,
        title: fileName,
        path,
      },
    }).fetch('GET', url)
      .then(() => {
     // Do any additional processing or UI updates after successful download if needed

      })
      .catch(() => {
          console.error('Download Error:', error);
    // Handle errors or show a relevant message to the user

      })

  } catch (error) {
    AppSettings.toggleShowProgress()
    console.error('Download Error:', error);
  }

}

// Call the function with the URL and desired file name
downloadFile("https://ou.s3.amazonaws.com/5f50c17SignedHeaders=host", 'file.pdf');
// or
downloadFile("https://picsum.photos/200/300", 'image.jpeg');

确保将示例 URL 替换为您的实际 API 端点 URL。文件扩展名必须与文件的实际格式匹配。

此功能使用

rn-fetch-blob
下载文件并将其保存到设备的下载目录中。然后,您可以根据需要使用此本地文件,例如,显示 PDF。

© www.soinside.com 2019 - 2024. All rights reserved.