大家好,我很想在车把模板中获取自定义字体。
因此,我正在使用车把创建一个语句模板,然后在保存之前以pdf格式对其进行编译。我现在的问题是,字体永远不会在服务器上获取。如果在本地,一切都很好。
知道我在做什么错吗?我尝试了相对路径和绝对路径,但结果是相同的。
这是我的声明。html
<html>
<head>
<style type="text/css" media="screen, print">
@font-face {
font-family: "lato-regular";
src: url("./src/services/templates/fonts/Lato/Lato-Regular.ttf")
format("truetype");
}
@font-face {
font-family: "lato-light";
src: url("./src/services/templates/fonts/Lato/Lato-Light.ttf")
format("truetype");
}
body {
font-family: "lato-light";
margin: 40px;
font-size: 12px;
}
</style>
</head>
<body>
....
</body
</html>
这是createStatement.js
const compile = async function(templateName, data) {
const filePath = path.join(
process.cwd(),
"src/services/templates",
`${templateName}.html`
);
const html = await fs.readFile(filePath, "utf-8");
const templateScript = await hbs.compile(html);
const res = templateScript(data);
return res;
};
hbs.registerHelper("dateFormat", function(value, format) {
return moment(value).format(format);
});
async function createStatement() {
try {
const content = await compile("statement", data);
var options = { format: "A4" };
pdf
.create(content, options)
.toFile("./src/services/template.pdf", function(err, res) {
if (err) return console.log(err);
console.log(res); // { filename: '/app/mypdf.pdf' }
});
} catch (error) {
console.log(error);
}
}