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

ちょうど今、私はあなたが提供したそれらのキャラクターでテストをしました、そしてそれらは私のためにうまく働きます。Win7、wkhtmltopdf0.11.0rc2。表紙、目次、ブックマーク、コンテンツ、ヘッダーで機能します。また、韓国語と中国語の文字でテストされており、それらも機能します。

(ファイルの場所が削除された)を使用して生成された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 に答える
0

中国語の文字が適切にレンダリングされない前に、wkhtmltopdf で同様の問題が発生しました。適切な中国語フォントをインストールすることで問題を解決しました。

文字を適切にレンダリングするために、チェコ語関連のフォントをインストールする必要がありますか? 私はチェコ語の文字/フォントに詳しくないので、これが当てはまるかどうかはわかりません。お役に立てれば。

于 2012-08-08T09:24:16.460 に答える