Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Puppeter导出PDF,使用React中的按钮_Javascript_Reactjs_Pdf_Puppeteer - Fatal编程技术网

Javascript 使用Puppeter导出PDF,使用React中的按钮

Javascript 使用Puppeter导出PDF,使用React中的按钮,javascript,reactjs,pdf,puppeteer,Javascript,Reactjs,Pdf,Puppeteer,我有一个应用程序。应用程序将使用Puppeter生成pdf 我运行此命令以生成pdf npm run generate 在my package.json中,脚本是 "generate": "npx babel-node scripts/generate-pdf.js" 在我的generate-pdf.js中,代码如下 const puppeteer = require("puppeteer"); (async () => {

我有一个应用程序。应用程序将使用Puppeter生成pdf

我运行此命令以生成pdf

npm run generate
在my package.json中,脚本是

"generate": "npx babel-node scripts/generate-pdf.js"
在我的generate-pdf.js中,代码如下

const puppeteer = require("puppeteer");

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto("http://localhost:3000/", {
    waitUntil: "networkidle2",
  });
  await page.emulateMediaType("screen");
  await page.pdf({
    path: "./react.pdf",
    printBackground: true,
    format: "a4",
  });
  await browser.close();
})();
一切正常。已成功生成pdf


我的问题是,如何使按钮在React中执行生成pdf文件的命令?

您可以执行以下操作:

await page.waitForFunction(() => window.buttonClicked)
然后在反应中:

<button onClick={() => window.buttonClicked = true}/>
window.buttonClicked=true}/>

react在您的前端,而pupeter则在您的服务器环境中执行。如果要以编程方式执行Pupeter,则需要创建一个API端点来执行Pupeter脚本。@FrédéricLang您可以给出一个如何执行的示例吗?为什么要在用户单击按钮时执行pdf文件?你应该为它生成一个构建时间,因为我制作的应用程序需要为我尝试过的每个不同的用户提供一个pdf,但什么都没有发生