gpt4 book ai didi

javascript - Nodejs读取外部图像并写入为pdf

转载 作者:行者123 更新时间:2023-11-30 14:43:12 30 4
gpt4 key购买 nike

我有一个 html 文件,其中有一些变量,例如 {Ticket}。在 nodejs 中,我试图将该变量替换为我拥有的图像。所以基本上输出将是一个 pdf 文件。

到目前为止,我的代码是这样的

ticket.html 看起来像这样

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td></td>
<td>{Ticket}</td>
</tr>
</table>
</body>
</html>

var html = fs.readFileSync('ticket.html', 'utf8'); //html file
var GetImage = fs.readFileSync('QRTicket.png'); //image file
var customHtml = customHtml.replace('{Ticket}', GetImage);
pdf.create(customHtml, options).toFile('QRImage.pdf', function(err, res) {
if (err) return console.log(err);
console.log(res);
});

但是它创建了一个空白的 pdf 文件。我正在使用 html-pdf生成pdf文件。我正在努力完成这项工作,但它不起作用。所以任何帮助和建议都将非常感激

最佳答案

您需要以不同的方式将图像插入页面(使用 file:// 协议(protocol))。该项目的 GitHub 页面上实际上有一个示例向您展示如何执行此操作 herehere .

在您的情况下,这将转化为以下内容:

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td></td>
<td><img src="{Ticket}"></td>
</tr>
</table>
</body>
</html>

和 JS 文件:

const fs = require('fs');
const pdf = require('html-pdf');

const html = fs.readFileSync('./ticket.html', 'utf8');
const customHtml = html.replace('{Ticket}', `file://${require.resolve('./QRTicket.png')}`);

pdf.create(customHtml).toFile('QRImage.pdf', (err, res) => {
if (err) return console.log(err);
console.log(res);
});

编辑:

此示例采用以下文件夹结构。

.
├── index.js
├── node_modules
├── package.json
├── package-lock.json
├── QRTicket.png
└── ticket.html

使用命令 node index.js 运行,它将生成带有图像的所需 PDF。

关于javascript - Nodejs读取外部图像并写入为pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49337777/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com