wkhtmltopdf - problème de codage de
j'utilise wkhtmltopdf pour exporter des pages html vers pdf, mais il semble qu'il ait un problème avec les Caractères tchèques... Je charge le html entier dans la variable, puis je change l'encodage et exécute wkhtmltopdf comme ceci:
$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);
le .le fichier html a le bon encodage, mais même quand je mets --encoding WINDOWS-1250 paramètre pour la chaîne de commande, son tout ne fonctionne pas... Merci pour toutes les idées...
modifier: J'ai résolu le problème! La capture était en constante WKHTML_LIB, que j'ai défini sur le début de la page:
define('WKHTML_LIB', "../wkhtmltopdf/wkhtmltopdf-amd64");
j'ai juste écrit le chemin directement vers la commande exec(); et maintenant il fonctionne même avec les drapeaux. Désolé de vous déranger avec une telle banalité... La ligne $commandString ressemble à ceci:
$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 réponses
Pour référence future:
j'ai eu le même problème avec les accents.
dès Que j'ai ajouté
<meta charset="UTF-8" />
de la page html le problème a été résolu.
cela présuppose bien sûr que votre page est servie en utf-8.
j'ai résolu le problème! La capture était en constante WKHTML_LIB, que j'ai définie au début de la page:
define('WKHTML_LIB', "../wkhtmltopdf/wkhtmltopdf-amd64");
j'ai juste écrit le chemin directement vers la commande exec(); et maintenant il fonctionne même avec les drapeaux. Désolé de vous déranger avec une telle banalité... La ligne $commandString ressemble à ceci:
$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';
j'ai eu un problème similaire avec wkhtmltopdf avant où les caractères chinois n'étaient pas rendus correctement. J'ai résolu le problème en installant les polices chinoises appropriées.
Par hasard, avez-vous d'installer tchèque polices de caractères à afficher correctement? Comme je ne suis pas familiarisé avec les caractères / polices Tchèques, Je ne suis pas sûr que cela s'applique. Espérons que cette aide.
tout à l'heure, j'ai fait un test avec ces personnages que vous avez fournis et ils fonctionnent très bien pour moi. Win7, wkhtmltopdf 0.11.0 rc2. Travaux sur la couverture, toc, signets, contenu et en-têtes. Aussi testé avec des caractères coréens et chinois et même ils fonctionnent.
PDF généré en utilisant (l'emplacement des fichiers a été supprimé))
--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 est Extrêmement invalide XHTML, la première ligne indique <?xml version="1.0" encoding="iso-8859-1"?>
. Le temp.le fichier html a été écrit sur le disque avec C# en utilisant UTF-8 et il fonctionne. Je suggère vraiment D'utiliser UTF-8 dans la mesure du possible.