【发布时间】:2022-03-31 01:40:04
【问题描述】:
我正在使用带有无服务器框架的 Node.js AWS lambda,PDF 生成工作正常,现在我需要在页眉和页脚部分使用自定义字体,我尝试在无服务器和还尝试通过 css 导入字体,这两种方式都不起作用有谁知道我们如何使用 puppeteer 在页眉和页脚中使用自定义字体。
下面是我生成 PDF 的助手类:
import * as chromium from "chrome-aws-lambda";
import { GetPDFBuffer } from "./types/HelperTypes";
export class Helper {
static getPDFBuffer: GetPDFBuffer = async (html: string, options: any) => {
let browser = null;
try {
const executablePath = process.env.IS_OFFLINE
? null
: await chromium.executablePath;
browser = await chromium.puppeteer.launch({
args: chromium.args,
executablePath,
});
const page = await browser.newPage();
const loaded = page.waitForNavigation({
waitUntil: "networkidle0",
});
await page.setContent(html, { "waitUntil": ['load', 'domcontentloaded', 'networkidle0'] });
await loaded;
return await page.pdf(options);
} catch (error) {
return error;
} finally {
if (browser !== null) {
await browser.close();
}
}
};
}
【问题讨论】:
-
为什么不用google字体链接,比如
@import url(https://fonts.googleapis.com/css?family=Signika); -
它适用于 PDF 正文,但不适用于页眉和页脚模板。
-
这方面有什么更新吗?我面临同样的问题。
标签: node.js aws-lambda puppeteer serverless-framework