- 註冊時間
 - 2006-3-13 
 - 最後登錄
 - 2025-7-23 
 - 在線時間
 - 675 小時 
 - 閱讀權限
 - 200 
 - 積分
 - 417 
 - 帖子
 - 1109 
 - 精華
 - 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 就避免了設置間距,而使用系統默認值。 |   
 
  
 |