Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Css 有没有办法选择性地将边距应用于使用Puppeter生成的PDF?_Css_Node.js_Pdf_Puppeteer - Fatal编程技术网

Css 有没有办法选择性地将边距应用于使用Puppeter生成的PDF?

Css 有没有办法选择性地将边距应用于使用Puppeter生成的PDF?,css,node.js,pdf,puppeteer,Css,Node.js,Pdf,Puppeteer,我正在编写一个节点程序,该程序将从目标网页动态生成PDF,并将其流回浏览器。我正在使用Puppeter生成PDF,我正在设计的网页是一个产品目录 对于这个目录,我希望第一页是一个没有边距的全宽图形,但是对于PDF的其余部分(这是一个大表),我希望对文档应用边距 我的代码如下所示: let viewportOptions = { width: 1680, height: 948, isLandscape: eval(req.params.orientation === "landsca

我正在编写一个节点程序,该程序将从目标网页动态生成PDF,并将其流回浏览器。我正在使用Puppeter生成PDF,我正在设计的网页是一个产品目录

对于这个目录,我希望第一页是一个没有边距的全宽图形,但是对于PDF的其余部分(这是一个大表),我希望对文档应用边距

我的代码如下所示:

let viewportOptions = {
  width: 1680,
  height: 948,
  isLandscape: eval(req.params.orientation === "landscape")
};

let pdfOptions = {
  path: "",
  format: "letter",
  scale: 1,
  landscape: eval(req.params.orientation === "landscape"),
  printBackground: true,
  deviceScaleFactor: 2
  margin: { top: "1cm", bottom: "1cm", left: "1cm", right: "1cm" }
};

(async() => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  page.setViewport(viewportOptions);
  await page.goto(`${fileData}`, { waitUntil: "networkidle2" });
  page.emulateMedia(null);
  const PDFresult = await page.pdf(pdfOptions);
  res.contentType("application/pdf");
  res.send(PDFresult);
  await browser.close();
})();
我可以将页边距应用于整个文档,这没有问题,但是是否有一种好的编程方法可以将页边距仅应用于第一个文档后面的页面?我看不到在Puppeter API中实现这一点的方法,但必须有另一种方法来实现这一点

谢谢你抽出时间

page.pdf(option)==ctrl+p,因此如果要设置高度和宽度,应设置页面高度和宽度以获得最终结果; 请尝试以下代码:

 await page1.setViewport({
    width: 1920, height: 1080, fitWindow: false, deviceScaleFactor: 1, mobile: false, waitLoad: true,
    waitNetworkIdle: true
});
await common.launch(page1);