wkhtmltopdf保持字体大小问题

时间:2016-09-05 20:27:05

标签: fonts size wkhtmltopdf

我正在使用wkhtmltopdf 0.12.1.2将html文件转换为pdf,并且输出的字体大小不同,字体大小为13.68但在html中为11pt。 有什么帮助让它匹配?

  <span style="font-family: Calibri; font-size: 11pt; ">
  <table>
    <tbody>
     <tr><td>this is a test Calibri 11pt font</td></tr>
etc etc


         wkhtmltopdf32.exe --disable-smart-shrinking --page-width 215.900000 --page-height 279.400000 1.htm 1.pdf

即使我删除了页面大小,它仍然是相同的。

1 个答案:

答案 0 :(得分:0)

此问题是由QT在html解析期间引起的。这也取决于所使用的字体。 如果我们提取字体样式并检查字体大小,则可以对大小从点到像素的转换有所了解。当我在Explorer / Google Chrome浏览器中检查点到像素的转换时,像素值未如下所示。通过在PDF转换时从wkhtmltopdf运行JavaScript来检索以下值。

对于Arial,下面给出的是转换。

8pt   -> 10px
9pt   -> 12px
10pt  -> 13px
11pt  -> 14px
12pt  -> 16px
14pt  -> 18px
16pt  -> 21px
18pt  -> 24px
20pt  -> 26px
22pt  -> 29px
24pt  -> 32px
26pt  -> 34px
28pt  -> 37px
36pt  -> 48px
48pt  -> 64px
72pt  -> 96px

然后,为了将它们转换为所需的大小,我编写了另一种方法,用上述像素值替换上面的像素值列表,以提供PDF预期的输出。 Arial字体的转换如下所示:

10px -> 11.5px
12px -> 13.5px
13px -> 14.5px
14px -> 15.95px
16px -> 17px
18px -> 20px
21px -> 23.5px
24px -> 26.25px
26px -> 28.5px
29px -> 31.5px
32px -> 34.5px
34px -> 37.5px
37px -> 40.5px
48px -> 51.75px
64px -> 69px
96px -> 104px

这解决了我的问题,并给出了与PDF完全匹配的字体。