19

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

4 回答 4

69

备查:

我对德语变音符号也有同样的问题。

我一加

<meta charset="UTF-8" />

到html页面问题就解决了。

当然,前提是您的页面以 utf-8 格式提供。

于 2014-06-27T07:20:59.570 回答
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';
于 2012-09-04T12:16:54.847 回答
0

在没有正确呈现中文字符之前,我遇到了类似的 wkhtmltopdf 问题。我通过安装相应的中文字体解决了这个问题。

您是否必须安装任何与捷克语相关的字体才能正确呈现字符?由于我不熟悉捷克语字符/字体,我不确定这是否适用。希望这可以帮助。

于 2012-08-08T09:24:16.460 回答
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"?>. temp.html 文件是使用 UTF-8 使用 C# 写入磁盘的,并且可以正常工作。我真的建议尽可能使用 UTF-8。

生成的 PDF 截图

于 2012-08-08T10:29:52.437 回答