У меня есть проект 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 мне не вариант.
Спасибо за любую помощь.