首页 > 解决方案 > 如何在 PDF 中嵌入和提取任意数据?

问题描述

我有一些代码可以读取 JSON 数据,将其格式化为 HTML 文件,然后使用 puppeteer 将 HTML 文件导出为 PDF。简化代码:

    // Parse data
    const rawData = fs.readFileSync(path.join(__dirname, 'data.json')));
    const parsedData = JSON.parse(rawData.toString());

    // Create HTML file
    const htmlContent = generateHtml(parsedData)
    const htmlPath = path.join(__dirname, 'report.html');
    fs.writeFileSync(htmlPath, htmlContent);

    // Load HTML file and export it as a PDF
    const browser = await puppeteer.launch({ headless: true });
    const page = await browser.newPage();
    await page.goto(`file://${htmlPath}`);
    await page.pdf({ path: path.join(__dirname, 'report.pdf') });
    await browser.close();

此 PDF 将自动生成并分发给可以自由转发的用户。

出于故障排除的目的,我希望能够将 的内容嵌入parsedData到 PDF 文件中。如果我收到错误报告并且他们提供了 PDF,那么能够提取底层 JSON 数据进行检查会很方便。

我考虑过简单地将 JSON 作为文本块添加到报告中,但它已经有 20k 个字符,我预计它会增长得更多,使它有点笨拙。

有没有办法以一种便于以后提取的方式将这些数据嵌入到 PDF 中?

标签: node.jspdfpuppeteer

解决方案


推荐阅读