我已经使用puppeter从html生成了pdf文件。可以通过任何方式获取生成的pdf中的总页数。 我的功能如下。
const fs = require("fs");
const path = require("path");
const puppeteer = require('puppeteer');
const handlebars = require("handlebars");
(async() => {
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
var templateHtml = fs.readFileSync(path.join(process.cwd(), 'test.html'), 'utf8');
var template = handlebars.compile(templateHtml);
var html = template();
await page.goto(`data:text/html;charset=UTF-8,${html}`, {
waitUntil: 'networkidle0'
});
const HEADER_TEMPLATE = `
<span style="font-size: 20px;color:black;">Header</span><span class="hidespan" style="font-size: 20px;color:black;">aaa</span>
`;
const FOOTER_TEMPLATE = `
<span style='font-size: 20px;color:black;' class='pageNumber'></span><span style='font-size: 20px;color:black;'> / </span><span style='font-size: 20px;color:black;' class='totalPages'></span>`;
await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'});
await page.addScriptTag({content: "$( document ).ready(function() { $('#test').hide(); $('.hidespan').hide();});"});
const finalPdf=await page.pdf({
path: 'page.pdf',
format: 'A4',
displayHeaderFooter: true,
headerTemplate: HEADER_TEMPLATE,
footerTemplate: FOOTER_TEMPLATE,
printBackground: true,
margin:{top:'2cm',right:'2cm',bottom:'2cm',left:'2cm'}
});
await browser.close();
})();
我的Pdf是使用这种方法成功生成的。但是我需要获取pdf中的总页数。