1

私は何日もこの問題に悩まされてきました.psファイルを取得するために「postscript」オプションを使用してキャンバスオブジェクトからテキストを生成しようとしています. キャンバスに線や楕円などを描いて.psファイルに表示すると問題なく動作することがわかりましたが、キャンバスに表示されていても(表示されていても)テキストオブジェクトはうまくいきませんでした)、出力 .ps ファイルにキャプチャされませんでした。

誰でもこれについて考えていますか?すべての変数が適切に定義されていると想定できます。

wm geometry . +0+0
wm resizable . false false
set wtitle "Drawing Chinese Character"
frame .frm -width $pad_width -height $pad_height -relief raised -bd 2
canvas .p0 -width $pad_width -height $pad_height -relief raised -bd 0 
.p0 create rectangle 0 0 $pad_width $pad_height -outline gray -fill white -width 0 
.p0 create text $akx $aky -text "\u9177" -font -Adobe-Times-Bold-R-Normal-*-$fontsize-*  
.p0 create line 0 0 $pad_width $pad_height -fill red -width 2 -arrow last
pack .p0 -in .frm -fill both
pack .frm -side bottom 

update;
.p0 postscript -fontmap fontMap -file "char.ps"
4

1 に答える 1

2

問題は、生成されたエンコーディングでの多くの UNICODE 文字の処理が不完全であることです (バグ!)。特に、文字は ( Tk インストールのライブラリ ディレクトリで)\u9177定義されておらず、テキスト出力するコードはとにかくこれらのものを正しく処理しません。mkpsenc.tcl

さらに、コアのラテン アルファベット以外では、グリフと文字の間のマッピングに注意する必要があるため、これについて何かをするのは非常に注意が必要です。これを修正するためのコードの投稿を歓迎しますが、それは困難です。(複雑さをすべて取り除き、UTF-8 をプリンターに送信するだけでよいのであれば、非常に素晴らしいことです。そうすれば、私たちの観点からは問題を一度に解決できます。しかし、それが一般的に可能かどうかはわかりません。 )

あなたが望んでいた答えではありません。

于 2010-10-03T06:07:14.990 に答える