尝试隐藏由Puppeteer生成的PDF上的第一个页脚/页眉

我是新使用nodejs函数和puppeteer。以前我使用wkhtmltopdf,但目前它的选项非常差。

因此,我的想法是从带有第一个封面的html生成一个pdf(具有全A4宽度/高度的图像),因为页脚是从index.js生成的,所以无法将其隐藏在页面的第一页上PDF。

//Imports

const puppeteer = require('puppeteer');

//Open browser

async function startBrowser() {

const browser = await puppeteer.launch({headless: true, args:['--no-sandbox']});

const page = await browser.newPage();

return {browser, page};

}

//Close browser

async function closeBrowser(browser) {

return browser.close();

}

//Html to pdf

async function html2pdf(url) {

const {browser, page} = await startBrowser();

await page.goto(url, {waitUntil: 'networkidle2'});

await page.emulateMedia('screen');

//Options

await page.pdf({

printBackground: true,

path: 'result.pdf',

displayHeaderFooter: true,

footerTemplate: '<div style="width:100%;text-align:right;position:relative;top:10px;right:10px;"><img width="60px" src="data:data:image/..."'

margin : {top: '0px',right: '0px',bottom: '40px',left: '0px' },

scale: 1,

landscape: false,

format: 'A4',

pageRanges: ""

});

}

//Exec

(async () => {

await html2pdf('file:///loc/node_pdfs/givenhtml.html');

process.exit(1);

})();

我的问题是,有什么方法可以找到第一个页脚并将其从索引功能中隐藏起来吗?

谢谢!

回答:

目前有多个错误,使它不可能得到这个工作。

目前这仅适用于使用此技巧的标头(取自此github评论):

await page.addStyleTag({

content: `

body { margin-top: 1cm; }

@page:first { margin-top: 0; }

`,

});

这将基本上隐藏第一页上的保证金,但不会工作使用底部边缘时(如还注意到这里)。

回答:

我建议的解决方案是创建两个PDF,一个只有第一页,没有空白,而另一个有其余页,只有空白:

await page.pdf({

displayHeaderFooter: false,

pageRanges: '1',

path: 'page1.pdf',

});

await page.pdf({

displayHeaderFooter: true,

footerTemplate: '<div style="font-size:5mm;">Your footer text</div>',

margin: {

bottom: '10mm'

},

pageRanges: '2-', // start this PDF at page 2

path: 'remaining-pages.pdf',

});

根据您需要执行任务的频率,您可以手动合并PDF或使用easy-pdf-merge之类的工具将其自动化(我自己没有使用过此工具)。

以上是 尝试隐藏由Puppeteer生成的PDF上的第一个页脚/页眉 的全部内容, 来源链接: utcz.com/qa/424816.html

回到顶部