wkhtmltopdf - 编码问题

时间:2012-08-08 07:40:52

标签: php encoding wkhtmltopdf

我正在使用wkhtmltopdf将html页面导出为pdf,但似乎捷克字符存在问题...我将整个html加载到变量中,然后我更改编码并运行wkhtmltopdf,如下所示:

$html = ob_get_clean();
$html = iconv("UTF-8","Windows-1250", $html);
file_put_contents('../export.php', $html);

$commandString = WKHTML_LIB.'http://www.estiroad.com/export.php sestava.pdf';
exec($commandString);

.html文件具有正确的编码,但即使我设置--encoding windows-1250参数到命令字符串,它只是不工作...感谢任何想法......

编辑: 我解决了这个问题!捕获是在常量WKHTML_LIB中,我在页面的开头定义了它:

define('WKHTML_LIB', "../wkhtmltopdf/wkhtmltopdf-amd64");

我只是将路径直接写入exec();命令,现在它甚至可以使用标志。很抱歉打扰你这么琐碎...... 现在$ commandString行看起来像这样:

$commandString = '"../wkhtmltopdf/wkhtmltopdf-amd64" --print-media-type --page-size A4 -R     50 --encoding windows-1250 --header-html header.html --margin-top 10mm --margin-bottom 10mm --margin-left 10mm --margin-right 10mm http://www.estiroad.com/export.php sestava.pdf';

4 个答案:

答案 0 :(得分:49)

供将来参考:

德国变音符号也有同样的问题。

我加上

<meta charset="UTF-8" />

到html页面问题解决了。

当然,这预示着您的网页会被视为utf-8。

答案 1 :(得分:5)

我解决了这个问题!捕获是在常量WKHTML_LIB中,我在页面的开头定义了它:

define('WKHTML_LIB', "../wkhtmltopdf/wkhtmltopdf-amd64");

我只是将路径直接写入exec();命令,现在它甚至可以使用标志。很抱歉打扰你这么琐碎......现在$ commandString行看起来像这样:

$commandString = '"../wkhtmltopdf/wkhtmltopdf-amd64" --print-media-type --page-size A4 -R     50 --encoding windows-1250 --header-html header.html --margin-top 10mm --margin-bottom 10mm --margin-left 10mm --margin-right 10mm http://www.estiroad.com/export.php sestava.pdf';

答案 2 :(得分:0)

在中文字符渲染不正确之前,我遇到了与wkhtmltopdf类似的问题。我通过安装适当的中文字体解决了这个问题。

您是否必须安装任何捷克相关字体才能正确渲染字符?由于我不熟悉捷克字符/字体,我不确定这是否适用。希望这会有所帮助。

答案 3 :(得分:0)

刚才我用你提供的那些角色进行了测试,它们对我来说很好。 Win7,wkhtmltopdf 0.11.0 rc2。适用于封面,书签,书签,内容和标题。还用韩语和汉字测试,甚至可以使用。

PDF生成使用(删除文件位置) --print-media-type --page-size A5 --header-html header.html --footer-html footer.html --margin-bottom 10mm --margin-top 10mm --margin-left 10mm --margin-right 10mm cover cover.html toc --xsl-style-sheet tocfile.xsl temp.html temp.pdf

temp.html是非常无效的XHTML,第一行是<?xml version="1.0" encoding="iso-8859-1"?>。使用UTF-8使用C#将temp.html文件写入磁盘并且它可以正常工作。我真的建议尽可能使用UTF-8。

Screenshot of generated PDF