1

tcpdf を使用して、webapp で pdf ファイルを作成しています。

私は tcpdf の writeHtml() 関数を使用しており、ヘブライ語と英語を混ぜようとしています。

両方の言語を同じ行に結合しようとすると、出力が間違った方向に出力されます。

たとえば、これは私のコードの一部です:

    $pdf = new TCPDF ( PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false );
    $pdf->SetDisplayMode ( "default", "OneColumn" );
    $pdf->setRTL ( false );
    $pdf->SetFont ( 'freeserif', '', 10, '' );


    $html = '<body  style="text-align: center">';
    $html .= "<p> some words in english ואחכ כמה מילים בעברית </p>";
    $html .= "<p> כמה מילים כתובות בעברית and then some words in english</p>";
    $html .= '</body>';
    $pdf->AddPage ();

    $pdf->writeHTML ( $comments_table, true, false, true, false, 'R' );
    $pdf->Output ( $path, 'F' );

予想される出力は次のようになります。

英語のいくつかの単語

כמה מילים כתובות בעברית そして英語でいくつかの単語。

しかし、すべての言語の第二言語の単語は逆の順序で来ます。私の出力は次のとおりです。

英語のいくつかの単語

כמה מילים כתובות בעברית 英語の言葉で

ご覧のとおり-最初の行では英語は問題ありません-そしてヘブライ語はそうではありません.2行目ではヘブライ語は問題ありませんが英語は問題ありません

4

5 に答える 5

1

双方向テキストに関するw3.orgのこのチュートリアルによると:

インライン テキストの場合、基本方向を設定するマークアップですべての反対方向のフレーズをしっかりとラップします。

したがって、コードは次のようになります。

$html = '<body style="text-align: center">
            <span> some words in english<span>
            <span>ואחכ כמה מילים בעברית <br> כמה מילים כתובות בעברית<span>
            <span>and then some words in english</span>
        </body>';

$pdf->AddPage();

$pdf->writeHTML( $html, true, false, true, false, '' );
于 2015-08-25T03:27:26.373 に答える
-1

spanのタグでヘブライ語のチャンクをラップしてみてくださいdir="rtl"。私はそれがブラウザで動作することを知っていますが、 TCPDF. spanこれらのタグ内に英語とヘブライ語が混在する文全体を含めることもできます。

于 2015-06-02T04:39:25.537 に答える