Как сделать снимок экрана в Expo React Native и отправить в PDF - PullRequest
0 голосов
/ 21 мая 2019

У меня есть проект React Native, настроенный с использованием Expo SDK версии 32.

Что я хочу: Сделайте снимок экрана определенного вида, а затем поместите полученное изображение в PDF.Затем я хочу, чтобы пользователь мог распечатать его.Это должно работать как на iOS, так и на Android.

Что я пробовал: Смотрите этот репозиторий ниже.Весь код находится в App.js.https://github.com/ttchuah/react-native-screenshot

В двух словах, я использую метод Expo1 takeSnapshotAsync , чтобы получить скриншот компонента View.Чтобы проверить, что это работает, я поместил полученный URI в компонент Image.(Похоже, чтов этот момент все работает нормально.

Затем я пытаюсь сделать это.Обратите внимание, что переменная snapshot является URI скриншота.pixels содержит только числовое значение.

let html = `<img src="${snapshot}" width="100%" style="border:2px solid black; height:${pixels}px; width:${pixels}px;" />`;
            html += '<p>Hello world</p>'

            const pdf = await Print.printToFileAsync({ html });

            return Print.printAsync({ uri: pdf.uri }).catch(error =>
                Alert.alert(error.message)
            );

Это открывает экран предварительного просмотра печати устройства.

Результаты:

Ожидаемые результаты - изображение должно отображаться с черной рамкой вокруг него.

Фактические результаты - изображение отображается только наAndroid.В iOS это пусто.

Я должен отметить, что раньше это работало для iOS на Expo v30.Однако мне пришлось перейти на v32, чтобы воспользоваться исправлением ошибки Expo, поэтому вернуться к v30 мне не вариант.

Спасибо за любую помощь.

...