我正在使用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
即使删除页面大小,它也保持不变。
此问题是由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完全匹配的字体。