CentOS 7 上的 PhantomJS 正在渲染符号而不是字母
PhantomJS on CentOS 7 is rendering symbols instead letters
我正在测试我使用 PhantomJS 开发的一项功能,用于从 html 字符串生成图像,在 macOS High Sierra 上,生成的图片看起来很自然,如下所示:
#
#
但是在我的CentOS 7生产服务器上,生成的图片是这样的:
#
#
我正在使用相同版本的 PhantomJS 2.1.1,
这是我正在使用的代码:
var system = require('system');
var page = require('webpage').create();
var documentTop = '<html lang="es"><meta charset="UTF-8">';
var style = '<style>table{width:100%;}</style></head><body>';
var documentBottom = '</body></html>';
var c = documentTop + style + system.args[1] + documentBottom;
// system.args[1] is the html that is being passed as argument
page.viewportSize = { width: 500, height: 100 };
page.content = c;
page.evaluate(function () {
document.body.bgColor = 'white';
});
page.render('demo.jpg');
phantom.exit();
我一直在使用或不使用 meta charset
进行测试,但到目前为止没有成功。
编辑
这是发送到 phantom
的 HTML 字符串的示例
<div id="order-details"><h2>Orden de compra</h2><span id="client-name">Nombre del cliente: <strong>Demo 8</strong></span><div id="summary"><p>Resumen</p><div id="summary-cols"> <div class="summary-col"><span class="summary-text">Cantidad</span><span class="summary-value">3</span></div><div class="summary-col"><span class="summary-text">P.V.</span><span class="summary-value">48.55</span></div><div class="summary-col"><span class="summary-text">Total</span><span class="summary-value">$ 1022.00</span></div></div></div><table><thead><th>Cant.</th><th>Descripción</th><th>Importe</th></thead><tbody><tr class="odd"><td>1</td><td>Concentrado de Hierbas Limón 50 g</td><td>317.00</td></tr><tr class=""><td>1</td><td>Polvo para Preparar Bebidas Sabor Ponche de Frutas (bote)</td><td>438.00</td></tr><tr class="odd"><td>1</td><td>Polvo para Preparar Bebidas Sabor Ponche de Frutas (sobres)</td><td>267.00</td></tr></tbody></table></div>
相同但格式化
<div id="order-details">
<h2>Orden de compra</h2><span id="client-name">Nombre del cliente: <strong>Demo 8</strong></span>
<div id="summary">
<p>Resumen</p>
<div id="summary-cols">
<div class="summary-col"><span class="summary-text">Cantidad</span><span class="summary-value">3</span></div>
<div class="summary-col"><span class="summary-text">P.V.</span><span class="summary-value">48.55</span></div>
<div class="summary-col"><span class="summary-text">Total</span><span class="summary-value">$ 1022.00</span></div>
</div>
</div>
<table>
<thead>
<th>Cant.</th>
<th>Descripción</th>
<th>Importe</th>
</thead>
<tbody>
<tr class="odd">
<td>1</td>
<td>Concentrado de Hierbas Limón 50 g</td>
<td>317.00</td>
</tr>
<tr class="">
<td>1</td>
<td>Polvo para Preparar Bebidas Sabor Ponche de Frutas (bote)</td>
<td>438.00</td>
</tr>
<tr class="odd">
<td>1</td>
<td>Polvo para Preparar Bebidas Sabor Ponche de Frutas (sobres)</td>
<td>267.00</td>
</tr>
</tbody>
</table>
我能够解决这个问题,它与服务器中安装的字体有关,因为我的 CentOS 7 只有一些字体,但没有通常的字体或来自 Microsoft 的字体,所以我使用了这个 link
https://unix.stackexchange.com/a/327138/73078
现在我只有口音有问题,但至少主要问题已经解决了。
我正在测试我使用 PhantomJS 开发的一项功能,用于从 html 字符串生成图像,在 macOS High Sierra 上,生成的图片看起来很自然,如下所示:
#
#
但是在我的CentOS 7生产服务器上,生成的图片是这样的:
#
#
我正在使用相同版本的 PhantomJS 2.1.1,
这是我正在使用的代码:
var system = require('system');
var page = require('webpage').create();
var documentTop = '<html lang="es"><meta charset="UTF-8">';
var style = '<style>table{width:100%;}</style></head><body>';
var documentBottom = '</body></html>';
var c = documentTop + style + system.args[1] + documentBottom;
// system.args[1] is the html that is being passed as argument
page.viewportSize = { width: 500, height: 100 };
page.content = c;
page.evaluate(function () {
document.body.bgColor = 'white';
});
page.render('demo.jpg');
phantom.exit();
我一直在使用或不使用 meta charset
进行测试,但到目前为止没有成功。
编辑
这是发送到 phantom
的 HTML 字符串的示例<div id="order-details"><h2>Orden de compra</h2><span id="client-name">Nombre del cliente: <strong>Demo 8</strong></span><div id="summary"><p>Resumen</p><div id="summary-cols"> <div class="summary-col"><span class="summary-text">Cantidad</span><span class="summary-value">3</span></div><div class="summary-col"><span class="summary-text">P.V.</span><span class="summary-value">48.55</span></div><div class="summary-col"><span class="summary-text">Total</span><span class="summary-value">$ 1022.00</span></div></div></div><table><thead><th>Cant.</th><th>Descripción</th><th>Importe</th></thead><tbody><tr class="odd"><td>1</td><td>Concentrado de Hierbas Limón 50 g</td><td>317.00</td></tr><tr class=""><td>1</td><td>Polvo para Preparar Bebidas Sabor Ponche de Frutas (bote)</td><td>438.00</td></tr><tr class="odd"><td>1</td><td>Polvo para Preparar Bebidas Sabor Ponche de Frutas (sobres)</td><td>267.00</td></tr></tbody></table></div>
相同但格式化
<div id="order-details">
<h2>Orden de compra</h2><span id="client-name">Nombre del cliente: <strong>Demo 8</strong></span>
<div id="summary">
<p>Resumen</p>
<div id="summary-cols">
<div class="summary-col"><span class="summary-text">Cantidad</span><span class="summary-value">3</span></div>
<div class="summary-col"><span class="summary-text">P.V.</span><span class="summary-value">48.55</span></div>
<div class="summary-col"><span class="summary-text">Total</span><span class="summary-value">$ 1022.00</span></div>
</div>
</div>
<table>
<thead>
<th>Cant.</th>
<th>Descripción</th>
<th>Importe</th>
</thead>
<tbody>
<tr class="odd">
<td>1</td>
<td>Concentrado de Hierbas Limón 50 g</td>
<td>317.00</td>
</tr>
<tr class="">
<td>1</td>
<td>Polvo para Preparar Bebidas Sabor Ponche de Frutas (bote)</td>
<td>438.00</td>
</tr>
<tr class="odd">
<td>1</td>
<td>Polvo para Preparar Bebidas Sabor Ponche de Frutas (sobres)</td>
<td>267.00</td>
</tr>
</tbody>
</table>
我能够解决这个问题,它与服务器中安装的字体有关,因为我的 CentOS 7 只有一些字体,但没有通常的字体或来自 Microsoft 的字体,所以我使用了这个 link
https://unix.stackexchange.com/a/327138/73078
现在我只有口音有问题,但至少主要问题已经解决了。