我使用puppeteer生成pdf,开发环境如下:
当地环境:
- 人偶师版本:1.3.0平台/ OS
- 版本:Windows 10 Node.js
- 版本:v8.11.11
服务器环境: - 人偶师版本:1.3.0
- 平台/操作系统版本:CentOS Linux版本7.4.1708(核心)
- Node.js版本:v8.11.11
我面临的问题是,从服务器生成的PDF文件是大的尺寸,字体也不会加载。结果如下PDF。
本地:x1c 0d1x
服务器:
请注意,下面的HTML是从我正在使用的HTML文件复制来创建PDF(作为URL)。[我正在使用page.后藤的URL来生成PDF]。
<html>
<body>
FOOOO <span style="font-family: Impact, Charcoal">impact</span>
<span style="font-family: 'Courier New', Courier, monospace">courier</span>
</body>
</html>
代码片段如下:
const config = {
headless: true,
ignoreHTTPSErrors: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage'
],
};
browser = await puppeteer.launch(config);
page = await browser.newPage({ context: 'another-context' });
await page.goto(pageURL, {timeout: 50000,waitUntil: ['domcontentloaded','networkidle0']});
await page.emulateMedia('screen');
const pdfOptions = {
format,
pageRanges,
printBackground:true
}
const pdf = await page.pdf(pdfOptions);
我在环境中缺少任何东西,我是Centos的新手(如果缺少任何东西的话)。请帮忙,因为我找不到这里缺少了什么。
**预期结果是什么?**在本地和服务器上创建的PDF应该相同。相同的字体和大小为相同的代码。
**会发生什么?**生成的服务器PDf大于本地,不加载PDF。
2条答案
按热度按时间djmepvbi1#
字体不包括在服务器PDF中,因为它是Linux服务器,它没有Windows字体。根据this answer,你可以安装这些字体:
标签:http://mscorefonts2.sourceforge.net/
ni65a41a2#
尝试一次:
对我很有效