Wkhtmltopdf中文符号被切断

时间:2016-05-26 08:22:21

标签: css fonts wkhtmltopdf

我正在尝试将带有一些中文字符的html转换为pdf,并且它们正在被切断。就好像中文字体需要2个罗马字母的空间,但只有一个。我试图渲染的文字:(周大鹏)įšėęčųū

看看它的样子: enter image description here

我尝试使用Noto Sans CJK SC字体来渲染它,中国字形看起来很好,但是特殊的波罗的海字母会间隔很差。我尝试使用逗号分隔字体系列,例如:font-family: 'Noto Sans', 'Noto Sans CJK SC', sans-serif;,但后面的字母间隔,或者中文字符会被剪切。

在网络中,一切看起来都很好,只有在生成PDF时才会发生这种情况。 我使用的是版本0.12.3的wkhtmltopdf。

1 个答案:

答案 0 :(得分:0)

我遇到了正确渲染中文字符的问题,并使用.fonts.conf文件修复了它。

在CentOS上意味着添加一个稍微修改过的xml文件版本(下面):

https://wiki.debian.org/Fonts#Subpixel-hinting_and_Font-smoothing

我在这里发现了:

https://github.com/wkhtmltopdf/wkhtmltopdf/issues/45#issuecomment-34543222

到/etc/fonts/conf.d/文件夹。我将文件命名为10-wkhtmltopdf.conf,以便首先加载它。

xml文件已更改为设置' hintstyle'到了' hintfull'而不是' hintslight'。

此.fonts.conf文件还有助于修复字体字距调整问题。



<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
	<match target="font">
		<edit mode="assign" name="rgba">
			<const>rgb</const>
		</edit>
	</match>
	<match target="font">
		<edit mode="assign" name="hinting">
			<bool>true</bool>
		</edit>
	</match>
	<match target="font">
		<edit mode="assign" name="hintstyle">
			<const>hintfull</const>
		</edit>
	</match>
	<match target="font">
		<edit mode="assign" name="antialias">
			<bool>true</bool>
		</edit>
	</match>
	<match target="font">
		<edit mode="assign" name="lcdfilter">
			<const>lcddefault</const>
		</edit>
	</match>
</fontconfig>
&#13;
&#13;
&#13;