【问题标题】:Puppeteer creates bad pdfPuppeteer 创建糟糕的 pdf
【发布时间】:2020-02-03 02:08:41
【问题描述】:

我正在使用 puppeteer 从我的静态本地 html 文件创建一个 pdf。 PDF 已创建,但已损坏。 Adobe 阅读器无法打开文件并显示 - '文件句柄错误'。有什么建议吗?

我正在使用以下标准代码:

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() 函数可以工作。

【问题讨论】:

  • 可以添加html文件吗?和木偶版
  • 我不认为这是 html 问题。我只尝试了

    hello world

    行,也尝试了纯文本,但仍然是同样的问题。
  • 傀儡师的版本是多少?
  • 最新版本 1.20

标签: javascript html node.js pdf puppeteer


【解决方案1】:

问题是我给出的 pdf 文件名 - 'con.pdf' 这似乎是 Windows 中的保留名称,因此文件句柄错误。 :D 多么巧合!!! 谢谢大家。

【讨论】:

    【解决方案2】:

    可能您的代码触发了异常。您应该检查 pdf 文件大小不是“zero”并且您可以使用 lesscat 命令读取您的 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);
      }
    })();
    

    【讨论】:

    • PDF 文件大小非零。下面是通过 less 命令在 pdf 上的几行: %PDF-1.4 % 1 0 obj > endobj
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 2022-07-13
    • 2021-07-25
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多