2

全て!GoogleAppEngineで実行されるアプリケーションを作成しています。PDFファイルの生成にReportLabを使用しています。ただし、アプリケーションはキリル文字を含むPDFを生成できる必要があります。だから私はいくつかのTrueTypeフォントをロードする必要があります。私はこのようなものを書くべきです

pdfmetrics.registerFont(TTFont('Verdana', 'verdana.ttf'))

'verdana.ttf'ファイルをにコピーしようとしまし /reportlab/fontsたが、registerFont再度失敗しました。ただし、デスクトップ環境では正常に動作します。

GAEで実行されているアプリケーションからTrueTypeフォントをロードするにはどうすればよいですか?

前もって感謝します

4

3 に答える 3

1

docker コンテナーを使用してこのジョブを実行する場合、または任意の Linux 環境で単に使用する場合

pdfmetrics.registerFont(TTFont('Verdana', 'Vera.ttf'))

また

pdfmetrics.registerFont(TTFont('Verdana-Bold', 'VeraBd.ttf'))

それ以外の

pdfmetrics.registerFont(TTFont('Verdana', 'verdana.ttf'))

それは私のために働いた。

于 2016-12-27T08:32:27.080 に答える
0

ドキュメントによると:

Marius の元のパッチでは、ファイル名は正確であるはずでしたが、ファイル名が相対パスの場合、対応するファイルの検索が現在のディレクトリで行われ、次に reportlab.rl_config.TTFSearchpath で指定されたディレクトリで行われるように変更しました。 !

アップロードするときに を変更することはできないため、アップロード/reportlab/fontsする必要があるのは、それをアップロードしてから、現在の作業ディレクトリに相対的な場所を指定することです (Python コードが存在するディレクトリと同じディレクトリである必要がありますが、そうでない場合はサーバー上のフォントなどのサポート ファイルを配置できる場所については、GAE のドキュメントを確認する必要があるかもしれません)。

しかし、私の誤解かもしれませんが、それはあなたがやろうとして失敗したことですか?

于 2011-04-10T01:40:19.580 に答える
0

以下の答えは良いですが、Google App Engine では機能しません。理由はわかりません! これは、flask 開発者向けのアプリ ディレクトリに基づく簡単な例です。

~/myapp

       |-- mymodule.py
       |-- myfont.ttf

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

font = r"myfont.ttf"
pdfmetrics.registerFont(TTFont("myfont", font))
于 2015-06-12T09:48:08.210 に答える