4

ヘブライ語の html ファイルを変換しようとしましたが、成功しませんでした。私が試したエンコーディングに関係なく、ヘブライ文字は出力 PDF に黒い四角形として表示されます。

pisa ディストリビューションに含まれているいくつかの Unicode テスト ファイルを試しました:pisa-3.0.33\test\test-unicode-all.htmlおよび\test-bidirectional-text.html. の有無にかかわらず、コマンドラインから xhtml2pdf を実行しました--encoding utf-8。同じ結果: ラテン語以外の文字はどれも成功しませんでした。

これはフォントの問題ですか? Unicode テスト ファイルが機能する場合、それを設定するために何かしましたか?

*FWIW、ヘブライ語を含むこれらの言語の少なくとも一部は、Arial で動作するはずです。

編集: または、誰かが pisa をセットアップしていて、上記の unicode テスト ファイルを変換してみることができれば、とても感謝しています。

4

2 に答える 2

8

次のコードをhtmlに挿入すると役立ちました

<style>
@page {
size: a4;
margin: 0.5cm;
}

@font-face {
font-family: "Verdana";
src: url("verdana.ttf");
}

html {
font-family: Verdana;
font-size: 11pt;
}

</style>

「verdana.ttf」の代わりにURLに、OSのフォントへの絶対パスを入力する必要があります

于 2011-01-29T16:22:11.537 に答える
3

将来、私のように、xhtml2pdfを使用してヘブライ語を含む PDF ファイルを適切に作成する方法を見つけようとする人がいる場合は、次のようにします。

  1. 最初に、@eviltrue がここで説明したフォント設定を HTML に含めます。これは、ヘブライ文字をサポートする限り、任意のフォントにすることができます。それ以外の場合、入力 HTML 内のヘブライ文字は、PDF では単に黒い四角形として表示されます。

  2. この回答を書いている時点で、ヘブライ文字を xhtml2pdf で PDF に出力することは可能ですが、ヘブライ文字は逆の順序で出力されשלום כיתה א
    ますא התיכ םולש

この時点で私は立ち往生しましたが、その後、このSO回答に出くわしました: https://stackoverflow.com/a/15449145/1918837

パッケージをインストールした後python-bidiの完全なソリューションの例を次に示します (Python アプリで使用):

from bidi import algorithm as bidialg
from xhtml2pdf import pisa

HTMLINPUT = """
            <!DOCTYPE html>
            <html>
            <head>
               <meta http-equiv="content-type" content="text/html; charset=utf-8">
               <style>
                  @page {
                      size: a4;
                      margin: 1cm;
                  }

                  @font-face {
                      font-family: DejaVu;
                      src: url(my_fonts_dir/DejaVuSans.ttf);
                  }

                  html {
                      font-family: DejaVu;
                      font-size: 11pt;
                  }
               </style>
            </head>
            <body>
               <div>Something in English - משהו בעברית</div>
            </body>
            </html>
            """

pdf = pisa.CreatePDF(bidialg.get_display(HTMLINPUT, base_dir="L"), outpufile)

# I'm using base_dir="L" so that "< >" signs in HTML tags wouldn't be
flipped by the bidi algorithm

Bidi アルゴリズムの優れた点は、(上記の HTML の例のように) 同じ行に RTL 言語と LTR 言語を混在させても、正しい形式の結果が得られることです。

編集:今行く最善の方法は間違いなくwkhtmltopdfを使用することです

于 2014-03-03T14:10:34.997 に答える