#javascript #node.js #reactjs #react-native #axios
Вопрос:
Я могу сгенерировать pdfBuffer, отправив HTML на серверную часть, но получение данных и совместное использование их с expo share — вот где я застрял. Очень признателен за любую помощь.
Библиотека, которую я использую, это
var pdf = require('html-pdf')
https://github.com/marcbachmann/node-html-pdf
Я пробовал следующий код и искал Google в течение 4 дней без каких-либо результатов.
интерфейс реагирует на собственный код
const createPdf = () => {
const html = insertHtml(orders)
axios('http://573f-98-14-177-227.ngrok.io/api/createPdf', {
method: 'post',
data: { html },
responseType: 'json',
})
.then((res) => {
console.log('pdf ', res.data)
sharePdf(res.data)
})
.catch(function (error) {
console.log('err ', error)
})
Alert.alert('Ordered Success', 'press ok to save a copy', [
{
text: 'Ok',
onPress: () => {},
style: 'cancel',
},
{
text: 'Cancel',
style: 'cancel',
},
])
props.resetOrder()
setOrders([])
}
Серверная часть узла для создания pdf
router.post('/createPdf', (req, res) => {
const {html} = req.body
pdf.create(html).toBuffer((err, buffer) => {
res.setHeader('Content-Length', buffer.length)
res.setHeader('Content-type', 'application/pdf')
var pdfBuffer = new Buffer.from(buffer)
res.send(pdfBuffer)
console.log('buffer ', pdfBuffer)
})
pdf.create(html).toStream((err, pdfStream) => {
if (err) {
console.log(err)
return res.sendStatus(500)
} else {
res.statusCode = 200
pdfStream.on('end', () => {
return res.end()
})
pdfStream.pipe(res)
}
})
})
Комментарии:
1. Можете ли вы получить ответ в формате PDF при попытке использования postman?
2. Я могу получить ответ в формате pdf, но я не знаю, как работать с ответом с помощью интерфейса react native.