【问题标题】:wkhtmltopdf keep font size issuewkhtmltopdf保持字体大小问题
【发布时间】:2016-09-05 20:27:05
【问题描述】:

我正在使用 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

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

【问题讨论】:

  • 你找到答案了吗?我也有同样的问题
  • 不,似乎是个限制。​​

标签: fonts size wkhtmltopdf


【解决方案1】:

此问题是在 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 中提供了完全匹配的字体。

【讨论】:

  • 感谢您的回答。这对我帮助很大。在我的情况下,使用 CSS 预处理器,我只需要在字体大小定义中将“px”替换为“pt”并修复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 2023-03-07
  • 2021-06-13
  • 2018-11-15
  • 2021-08-22
  • 2011-03-28
相关资源
最近更新 更多