wkhtmltopdf - problème de codage de
Je suis en utilisant wkhtmltopdf pour exporter des pages html au format pdf, mais il semble qu'il a un problème avec les caractères tchèques... je me charge de tout html dans une variable, puis-je changer l'encodage et exécuter 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);
L' .fichier html a le droit d'encodage, mais même lorsque j'ai mis --codage windows-1250 paramètre de chaîne de commande, sa ne marche pas... Merci pour toutes les idées...
EDIT:
J'ai résolu le problème! La capture a été en constante WKHTML_LIB, lequel j'ai défini au début de la page:
define('WKHTML_LIB', "../wkhtmltopdf/wkhtmltopdf-amd64");
Je viens d'écrire le chemin d'accès directement à l'exec(); commande et maintenant, il fonctionne même avec les drapeaux. Désolé de vous ennuyer avec une telle trivialité...
Maintenant, le $commandString ligne 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';
- Devrait-il y avoir un espace avant http?
WKHTML_LIB.' http:/
- Il ne devrais pas, mais il ne prend aucun effet si elle est là ou il n'y est pas.. Commande est exécutée sans problèmes, pdf généré, mais il est mal codé.... Par exemple, au lieu de "ű" il y a "ø" ...
- Désolé, commentaire supprimé...
- Si vous avez résolu le problème, faire une réponse réelle. Ne pas ajouter [résolu] au titre.
Vous devez vous connecter pour publier un commentaire.
Pour référence future:
J'ai eu le même problème avec les accents.
Dès que j'ai ajouté
à la page html le problème a été résolu.
Qui suppose, évidemment, votre page est servi en tant que utf-8.
J'ai résolu le problème! La capture a été en constante WKHTML_LIB, lequel j'ai défini au début de la page:
Je viens d'écrire le chemin d'accès directement à l'exec(); commande et maintenant, il fonctionne même avec les drapeaux. Désolé de vous ennuyer avec une telle trivialité... Maintenant le $commandString ligne ressemble à ceci:
J'ai eu un problème similaire avec wkhtmltopdf avant de où les caractères Chinois n'étaient pas rendus correctement. J'ai résolu le problème en installant le Chinois convenable polices.
Par hasard, avez-vous d'installer tchèque polices de caractères à afficher correctement? Comme je ne suis pas familier avec le tchèque caractères /polices, je ne suis pas sûr de savoir si cela s'applique. Espérons que cette aide.
Juste maintenant, j'ai fait un test avec les personnages que vous avez fournis et qu'ils fonctionnent très bien pour moi. Win7, wkhtmltopdf 0.11.0 rc2. Travaux sur la couverture, table des matières, des signets, le contenu et les en-têtes. Testé aussi avec le coréen et le chinois personnages et même de travailler.
PDF Générés en utilisant (emplacements des fichiers supprimés)
--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, première ligne indique
<?xml version="1.0" encoding="iso-8859-1"?>
. L'temp.html le fichier a été écrit sur le disque avec C# à l'aide de l'UTF-8 et ça marche. Je suggère l'utilisation de l'UTF-8 dans la mesure du possible.$commandString
et votre source HTML quelque part pour que je puisse tester en utilisant exactement votre matériel? Une seule chose à faire serait d'utiliser wkhtmltopdf directement, et non pas à partir de php. Si vous pouvez donner la source et la commande exacte, je vais essayer de reproduire le problème ici.