Как конвертировать base64 в pdf React-Native

#android #ios #reactjs #react-native #base64

#Android #iOS #reactjs #react-native #base64

Вопрос:

Я создал приложение, используя react-native и имея некоторые данные base64 из api. Я хочу преобразовать данные base64 в формат pdf. если у вас есть какие-либо идеи, пожалуйста, помогите мне. Спасибо.

Ответ №1:

Вы можете использовать пакет react-native-pdf (https://www.npmjs.com/package/react-native-pdf ). Если вы хотите отобразить PDF-файл в своем приложении, этот пакет будет весьма полезен, поскольку он поддерживает загрузку PDF-файлов из строки base64 как для ios, так и для Android . Вы можете указать источник pdf из ваших данных base64, как показано в их примере :

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

Комментарии:

1. как мне получить строку base64 из ответа на выборку?

2. К вашему сведению: не работает с expo

3. @ikiK смотри github.com/expo/examples/tree/master/with-pdf

4. У меня много изображений base64, как вы это делаете?

Ответ №2:

Я предполагаю, что, 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
  

Комментарии:

1. Откуда берется fs зависимость?

2. тогда у нас было что-то под названием react-native-fs , вы могли бы проверить, существует ли это все еще.

3. вы могли бы проверить это — npmjs.com/package/react-native-fs

4. Я использовал этот импорт: import RNFS from 'react-native-fs'; после него я могу просто использовать await RNFS.writeFile(path, fileContent, 'base64'); . Напоминание: установите разрешения на iOS и Android! Для подхода «только предварительный просмотр, копирование позже» RNFS.DocumentDirectoryPath можно использовать. Чтобы скопировать файл в папку загрузки, я использовал await FileSystem.cpExternal(fullPath, fileName, 'downloads'); from import { FileSystem } from 'react-native-file-access'; . Для предварительного просмотра PDF, который я использовал await FileViewer.open(fullPath) из import FileViewer from 'react-native-file-viewer';