使用 wkhtmltoimage 渲染 unicode 文本
Render unicode text with wkhtmltoimage
尝试使用 wkhtmltox 将 HTML 文件转换为图像:
./server.js
const express = require('express');
const fs = require('fs');
const wkhtmltox = require('wkhtmltox');
const app = express();
const converter = new wkhtmltox();
app.get('/tagslegend.png', (request, response) => {
response.status(200).type('png');
converter.image(fs.createReadStream('tagslegend.html'), { format: "png" }).pipe(response);
});
var listener = app.listen(process.env.PORT, function () {
console.log('App listening on port ' + listener.address().port);
});
和./tagslegend.html
:
<!doctype html>
<html>
<body>
<dl>
<dt>中文</dt><dd>In mandarin language.</dd>
</dl>
</body>
</html>
我期待返回上述 HTML 的图像,例如(我的浏览器如何呈现它):
相反,我得到了这个:
我如何将 HTML 动态地呈现为 png 使用 正确的中文字符并将其提供给客户?
添加
<meta charset="utf-8">
到 HTML 文档的 <head>
尝试使用 wkhtmltox 将 HTML 文件转换为图像:
./server.js
const express = require('express');
const fs = require('fs');
const wkhtmltox = require('wkhtmltox');
const app = express();
const converter = new wkhtmltox();
app.get('/tagslegend.png', (request, response) => {
response.status(200).type('png');
converter.image(fs.createReadStream('tagslegend.html'), { format: "png" }).pipe(response);
});
var listener = app.listen(process.env.PORT, function () {
console.log('App listening on port ' + listener.address().port);
});
和./tagslegend.html
:
<!doctype html>
<html>
<body>
<dl>
<dt>中文</dt><dd>In mandarin language.</dd>
</dl>
</body>
</html>
我期待返回上述 HTML 的图像,例如(我的浏览器如何呈现它):
相反,我得到了这个:
我如何将 HTML 动态地呈现为 png 使用 正确的中文字符并将其提供给客户?
添加
<meta charset="utf-8">
到 HTML 文档的 <head>