Linux 和 OSX 版本之间呈现不同的字体大小

Different font size rendering between Linux and OSX builds

对于 "font-size: 1cm" css 规则,OSX 的 Wkhtmltopdf 呈现 1 厘米的字体大小,而 Linux 构建呈现约 0.77 厘米的大小。

这是我的 HTML 代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title></title>
        <style>
            body {
                font-size: 1cm;
                line-height: 1cm;
                font-family: sans-serif;
            }
        </style>
    </head>
    <body>
        TEST ME 1<br />
        TEST ME 2<br />
        TEST ME 3<br />
        TEST ME 4<br />
        TEST ME 5<br />
        TEST ME 6<br />
        TEST ME 7<br />
        TEST ME 8<br />
        TEST ME 9<br />
        TEST ME 10<br />
        TEST ME 11<br />
        TEST ME 12<br />
        TEST ME 13<br />
        TEST ME 14<br />
        TEST ME 15<br />
        TEST ME 16<br />
        TEST ME 17<br />
        TEST ME 18
    </body>
</html>

命令:

wkhtmltopdf testPdf.html testPdf.pdf

有什么想法吗? 谢谢!

在这里找到答案:http://blog.gluga.com/2012/05/wkhtmltopdf-font-and-sizing-issues.html

Meter/inch 单位似乎不一致,因为 wkhtmltopdf 在 Webkit 渲染引擎中渲染 html,可以配置不同的屏幕分辨率。

所以,解决方案是将 fix CSS widthheight 设置为页面容器。

以我为例:

    body {
        font-size: 1cm;
        line-height: 1cm;
        font-family: sans-serif;
        width: 1600px;
        height: 1050px;
    }

成功了。

注意:在我的例子中,为了在 OSX 上的 A4 横向上获得准确的 dpi 渲染,我必须设置较低的值(width: 1120px; 左右边​​距为 1cm) : 这导致 Linux 上的渲染较小,我用 --zoom 1.8 修复了它(我想任何高值都有效,它只会使它匹配整页的宽度,而不是更多)。

我认为这与 #2463 问题有关。对于 linux 版本,您可以使用该命令 wkhtmltopdf testPdf.html testPdf.pdf --zoom 1.28.