php - example - wkhtmltopdf horizontal
wkhtmltopdf-problema de codificación (4)
Estoy usando wkhtmltopdf para exportar páginas html a pdf, pero parece que tiene un problema con los caracteres checos ... Cargo html entero en una variable, luego cambio la codificación y ejecuto wkhtmltopdf de esta manera:
$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);
El archivo .html tiene la codificación correcta, pero incluso cuando configuro --codificación del parámetro windows-1250 a la cadena de comandos, simplemente no funciona ... Gracias por cualquier idea ...
EDIT: resolví el problema! La captura estaba en WKHTML_LIB constante, que definí al principio de la página:
define(''WKHTML_LIB'', "../wkhtmltopdf/wkhtmltopdf-amd64");
Acabo de escribir el camino directamente a exec (); comando y ahora funciona incluso con las banderas. Lo siento por molestarlo con semejante trivialidad ... Ahora la línea $ commandString se ve así:
$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'';
¡Resolví el problema! La captura estaba en WKHTML_LIB constante, que definí al principio de la página:
define(''WKHTML_LIB'', "../wkhtmltopdf/wkhtmltopdf-amd64");
Acabo de escribir el camino directamente a exec (); comando y ahora funciona incluso con las banderas. Lo siento por molestarlo con semejante trivialidad ... Ahora la línea $ commandString se ve así:
$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'';
Ahora mismo hice una prueba con los personajes que me proporcionaste y funcionan bien para mí. Win7, wkhtmltopdf 0.11.0 rc2. Trabajos en portada, toc, marcadores, contenido y encabezados. También probado con caracteres coreanos y chinos e incluso funcionan.
PDF generado usando (ubicaciones de archivo eliminadas) --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 es XHTML extremadamente inválido, la primera línea dice <?xml version="1.0" encoding="iso-8859-1"?>
. El archivo temp.html fue escrito en el disco con C # usando UTF-8 y funciona. Realmente sugiero usar UTF-8 siempre que sea posible.
Para futura referencia:
Tuve el mismo problema con los umlauts alemanes.
Tan pronto como agregué
<meta charset="UTF-8" />
a la página html se solucionó el problema.
Eso, por supuesto, presupone que su página se sirve como utf-8.
Tuve un problema similar con wkhtmltopdf antes de que los caracteres chinos no se representaran correctamente. He resuelto el problema instalando las fuentes chinas apropiadas.
¿Es posible que tenga que instalar alguna fuente relacionada con la República Checa para que los caracteres se representen correctamente? Como no estoy familiarizado con los caracteres / fuentes checos, no estoy seguro de si esto se aplica. Espero que esto ayude.