为什么wkhtmltopdf.exe在不同的Windows机器上产生不同的结果?

sme*_*ung 12 wkhtmltopdf

我有一个简单的test.html文件:

<html>
<div style="width: 100%; font-size: 28pt;">
This is a test to see what happens when this kind of text gets processed by wkhtmltopdf
</div>
</html>
Run Code Online (Sandbox Code Playgroud)

我通过这样的wkhtmltopdf.exe运行:

wkhtmltopdf.exe test.html test.pdf
Run Code Online (Sandbox Code Playgroud)

在一台机器上,我得到以下结果:

但在另一台机器上我得到了这个结果:

看起来字体大小不同?

为什么会这样?

谢谢.

编辑

我发现了导致这种情况的原因.Windows有一个用于更改文本大小的设置:

出于某种原因,一台计算机上的默认值为100%,另一台则为125%.在webkit中有没有办法忽略它?

sme*_*ung 15

正如我在原帖中所写,问题的根本原因是wkhtmltopdf受到Windows中文本大小设置的影响.所以在我的情况下,两台不同的计算机有两种不同的Windows文本大小设置.希望这些信息对某人有用.

编辑

已经有一段时间了,但如果有人对此感兴趣,这就是我最终解决问题的方法.我用了这个论点:

--dpi 125
Run Code Online (Sandbox Code Playgroud)

125不是一个神奇的数字,它刚刚结束,在我的情况下产生最好的视觉效果.我没有太多时间来研究这个问题,但它解决了问题,现在每台Windows机器都产生相同的结果.

作为注释--zoom参数没有解决Windows机器之间的差异.


小智 8

我发现定义--page-height和--page-width以像素为单位而不是mm,cm或in help.我修改了我的转换命令:

"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe" --print-media-type --page-width 210 --page-height 160 --margin-top 0 --margin-right 0 --margin-bottom 0 --margin-left 0 --dpi 300 --zoom 1.043 --header-spacing 0 --footer-spacing 0 --javascript-delay 1000 html_file pdf_file
Run Code Online (Sandbox Code Playgroud)

至:

"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe" --print-media-type --page-width 1588px --page-height 1210px --margin-top 0 --margin-right 0 --margin-bottom 0 --margin-left 0 --dpi 150 --zoom 3 --header-spacing 0 --footer-spacing 0 --javascript-delay 1000 html_file pdf_file
Run Code Online (Sandbox Code Playgroud)

该解决方案在wkhtmltopdf 0.11.0_rc1和0.12.1.1上进行了测试,两者都在Windows 7 x64上进行.

现在,在具有小文本大小和中等文本大小的机器上,html的pdf版本看起来相同.