完美解决FastReport3和FastReport4导出PDF文件乱码


用下面的替换文件frxExportPDF.pas中的TfrxPDFFont.GetFontName: AnsiString 中的同名函数即可。
将原代码:


   function HexEncode7F(Str: WideString): AnsiString;
  var
    s: AnsiString;
    Index, Len: Integer;
  begin
    s := '';
    Len := Length(Str);
    Index := 0;
    while Index < Len do
     begin
       Index := Index + 1;
       if Byte(Str[Index]) > $7F then
        s := s + '#' + AnsiString(IntToHex(Byte(Str[Index]), 2))
      else
        s := s + AnsiString(Str[Index]);
    end;
    Result := s;
  end;

替换为以下代码:

 function HexEncode7F(Str: WideString): AnsiString;
  var
    s: AnsiString;
    t: AnsiString;
    Index, Len: Integer;
  begin
    s := '';
    t := Str;
    Len := Length(t);
    Index := 0;
    while Index < Len do
      begin
        Index := Index + 1;
         if Byte(t[Index]) > $7F then
        s := s + '#' + AnsiString(IntToHex(Byte(t[Index]), 2))
      else
        s := s + AnsiString(t[Index]);
    end;
    Result := s;
  end;

标签:Delphi, FastRepot

 

另中文的字字体要用中文的字体,比如宋体就可以正常导出了。

改完之后要记得更新frxExportPDF.dcu有的时候原代码和用的地方不一样的


转自:http://hi.baidu.com/esocu/item/cb7e14f69286852e753c4c5d

你可能感兴趣的:(完美解决FastReport3和FastReport4导出PDF文件乱码)