我正在使用puppeteer从我的静态本地html文件创建pdf。 PDF已创建,但已损坏。 Adobe Reader无法打开文件并说-“文件句柄错误”。有什么建议吗?
我正在使用以下标准代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('local_html_file', {waitUntil: 'networkidle2'});
await page.pdf({path: 'hn.pdf', format: 'A4'});
await browser.close();
})();
我也尝试过setContent()但结果相同。 page.screenshot()函数可以使用。
答案 0 :(得分:1)
您的代码可能会触发例外。您应该检查pdf文件的大小是否不是“ 零”,并且可以使用 less 或 cat 命令读取pdf文件。有时pdf创建者软件可以在pdf文件内容的顶部写入错误。
const puppeteer = require('puppeteer');
(async () => {
try{
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('local_html_file', {waitUntil: 'networkidle2'});
await page.pdf({path: 'hn.pdf', format: 'A4'});
await browser.close();
}catch(e){
console.log(e);
}
})();
答案 1 :(得分:0)
问题是我给的pdf文件名-'con.pdf' 这似乎是Windows中的保留名称,因此文件处理不正确。 :D 真是巧合! 谢谢大家。