我在后端使用 Nest 通过 Puppeteer 生成 pdf 文件。当我给它提供在磁盘上创建 pdf 的路径时,Puppeteer 工作正常。
我目前正在归还pdf。
这是生成 pdf 的代码:
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://blog.risingstack.com', {waitUntil: 'networkidle0'});
var options = {
width: '1230px',
displayHeaderFooter: false,
margin: {
top: "10px",
bottom: "30px"
},
printBackground: true,
}
const pdf = await page.pdf(options);
await browser.close();
return pdf
Run Code Online (Sandbox Code Playgroud)
这是调用前一个函数的控制器:
@Header('Content-Type', 'application/pdf')
async Printpdf(@Body() message: any) {
console.log(message);
return this.PrintpdfService.printpdf();
}
Run Code Online (Sandbox Code Playgroud)
在 React 中,我用 axios 来调用它,如下所示:
return axios.post(`http://localhost:3000/printpdf`,data, {
responseType: 'arraybuffer', …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 React 上的 Mapbox 来控制图层上的事件侦听器。map.off 应该可以做到这一点,但它并没有删除图层中的 onclick 事件。https://docs.mapbox.com/mapbox-gl-js/api/map/#map#off
但我做错了,所以我无法删除该事件。这是我到目前为止所做的......
要添加事件,我这样做
map.on('click', 'building_footprints_click', addBuildingPopUp)
为了尝试删除它,我尝试过:
map.off('click', 'building_footprints_click', addBuildingPopUp);
map.off('click', 'building_footprints_click');
map.off('click', addBuildingPopUp);
但他们都没有工作。我读到我必须发送 on 事件的实例。所以我尝试:
let event = map.on('click', 'building_footprints_click', addBuildingPopUp)
以及与上面相同的三个关闭操作,但它们也不起作用
map.off('click', 'building_footprints_click', event);
map.off('click', 'building_footprints_click');
map.off('click', event);
还有监听器功能,我尝试过:
const addBuildingPopUp = (e) => {}
and
function addBuildingPopUp (e) {}
and
let addBuildingPopUp = function building (e) {}
Run Code Online (Sandbox Code Playgroud)
这是一个基本的 Stackblitz,其中包含非工作函数的示例 https://stackblitz.com/edit/react-5maykf?file=src/App.js