完美解决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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值