- 註冊時間
- 2006-3-13
- 最後登錄
- 2025-1-10
- 在線時間
- 673 小時
- 閱讀權限
- 200
- 積分
- 417
- 帖子
- 1107
- 精華
- 0
- UID
- 2
  
|
參考來源 http://www.cnblogs.com/apple1/archive/2009/09/21/1570871.html
控件修改之: FreeReport 打印錯誤,漢字列會出現字重疊現象
主要是 fr_class.pas 裡面
SetTextCharacterExtra(Canvas.Handle, Round(CharacterSpacing * ScaleX)); //這個就是設置字符間隔,將導致漢字打印錯誤
這個 api 計算字符間距可能是以 ASCII 字符計算的,導致計算錯誤。
真正使用字符間距的地方是
if not Exporting then
ExtTextOut(Canvas.Handle, curx, cury, ETO_CLIPPED, @DR, PChar(str), Length(str), nil);//PInteger(GCP.lpDx)) //這裡決定字符間距
原先是 GCP.lpdx 這個值, 然後修改成 nil 就避免了設置間距,而使用系統默認值。 |
|