名前 題名 ▼ Harryさん > ▼ Mr.XRAYさん > > あれだけあれば,検索でヒットする可能性が高くなるでしょう. > > あはは、マスターにはすべてお見通しですね、それを狙ってたことも。 > なるべく情報(良いことも、悪いことも)を集約しておいたほうが良い > だろうと思って、書き連ねてみました。 > > ですが肝心の質問者さんの問題は、今のところ解決の見通しが立ちません。 > 実は、もし質問者さんがデバッガに慣れていない場合を考えて、フォントの > emユニット値を取得する小さなコードも書いたんですが、よく考えると、 > 私が遭遇した「幅が細くなり、間隔が広がる」という事例じゃないので、 > ほぼ無意味だろうと判断して投稿しませんでした。 > > 使用したフォントそのものズバリな情報と、メタファイル描画のコードが > 提示されない限り、何も分かりませんねぇ…。 > > なお、パッチ箇所は SynPdfユニット内のTPdfTTF.Create の下の方です。 > (なんとこのクラス、メソッドはコンストラクタしかありません!) > 「究極の一行パッチ」ですと、ほぼ最下行の↓コレを書き換えるだけです。 > // Width := (cardinal(fhmtx[Glyph*2])*1000) shr fUnitsPerEmShr else > Width := fhmtx[Glyph*2]*1000 div head^.unitsPerEm else > > が、これではせっかくのシフト演算による高速化をドブに捨ててしまうので、 > ちゃんとしたパッチでは 2の累乗、1000、その他 の3通りにしてみました。 > > #パッチをコミットしてもらうにはどうしたらよいのか、それが問題です。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link