导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2010/4/3 19:44:48
标题:
FastReport脚本编辑中中文支持问题和pdf中文输出问题
浏览:6137
加入我的收藏
楼主:
FastReport脚本编辑中如果有中文,则会出现光标指示不正确问题,大家有没有遇到这个问题?有什么解决办法? PDF中文输出也有问题,设置好中文字体后输出也不行,用pdf文件的old版本也不行,网上的贴子有关于3.X版本的,不知道4.X版本的大家有没有可以使用的? 我试过4.8.7和4.9.35 谢谢!
----------------------------------------------
这个世界上还有很多比钱更重要的东西,比如说意大利面---加菲猫
作者:
2010/4/4 12:06:10
1楼:
自己反复测试,pdf输出中文有问题,设置成Arial和宋体都没有成功(好像有人成功),我测试;选择Arial Unicode MS后输出pdf没有问题了.这有点限制,不知道有没有朋友有更好的更彻底的解决办法.(楷体也可以)
----------------------------------------------
这个世界上还有很多比钱更重要的东西,比如说意大利面---加菲猫
作者:
xjia (xjia)
★☆☆☆☆
-
盒子活跃会员
2010/4/5 15:54:13
2楼:
还是老问题,保存PDF字体时字体名编码错误,和2.x/3.x时一样的错误,修正其实很简单。 用下面的替换 TfrxPDFFont.GetFontName: AnsiString 中的同名函数 function HexEncode7F(Str: WideString): AnsiString; var s: AnsiString; // add by ijia 2010-04-05 t: AnsiString; Index, Len: Integer; begin s := ''; // add by ijia 2010-04-05 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; BTW: 最新版(我测试用的是4.9.38)的PDF输出汉字好象会以图片方式保存到PDF文件中,只要在PDF阅读器中放大就能看出来,以前版本好象没这问题。
----------------------------------------------
-
作者:
xjia (xjia)
★☆☆☆☆
-
盒子活跃会员
2010/4/5 16:03:22
3楼:
好象报表中超过一种以上字体就会把使用某种字体的MEMO的文字保存成图片
----------------------------------------------
-
作者:
2010/4/5 16:26:34
4楼:
还有导出pdf窗口文字错误。
此帖子包含附件: 大小: 34.3K
----------------------------------------------
-
作者:
2010/4/6 8:48:51
5楼:
to:xjia 非常感谢,我测试了一下,可以了,只不过Arial字体还是无法正常显示,不过影响不大了,宋体能正常就基本可以了. 再次谢谢! :-) to:coolslob 转一个贴给你可以解决: FastReport 4.9.20 中文菜单显示不全或者乱码解决方法2010-03-06 22:38可以自己编译一个frcc.exe,替换Res目录下的,然后再recompile即可。 delphi 2010(update5)测试界面都正常。 用delphi 2010建立一个console工程,名称为frcc,代码如下: program frcc; {$APPTYPE CONSOLE} uses SysUtils, Classes, StrUtils; var xml: string; list: TStringList; i: Integer; fileName : string; lineWidth: integer; line: string; begin try if ParamCount < 1 then begin Writeln('no input'); Exit; end; xml := ParamStr(1); fileName := ExtractFileName(xml); fileName := Copy(fileName, 1, Length(fileName) - 4); //delete ext .xml list := TStringList.Create(); list.LoadFromFile(xml, TEncoding.UTF8); xml := list.Text; list.Clear; list.Add('unit ' + fileName + ';'); list.Add(''); list.Add('interface'); list.Add('{$I frx.inc}'); list.Add('implementation'); list.Add('uses frxRes;'); list.Add('const resXML ='); xml := ReplaceText(xml, #13, ''); xml := ReplaceText(xml, #10, ''); i := 1; while True do begin if (i + 80) < (Length(xml) + 1) then lineWidth := 80 else lineWidth := Length(xml) + 1 - i; if lineWidth = 0 then break; line := Copy(xml, i, lineWidth); list.Add(QuotedStr(line) + '+'); i := i + lineWidth; end; list.Add(''''';'); list.Add('initialization'); list.Add(' frxResources.AddXML(Utf8Encode(resXML));'); list.Add(''); list.Add('end.'); list.SaveToFile(ChangeFileExt(ParamStr(1), '.pas'), TEncoding.Default); list.Free; except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end.
----------------------------------------------
这个世界上还有很多比钱更重要的东西,比如说意大利面---加菲猫
作者:
xjia (xjia)
★☆☆☆☆
-
盒子活跃会员
2010/4/6 9:31:53
6楼:
我用2010测试 Arial 字体没有问题,可以正常导出显示。 FR4.9.38在D7/D2010中有时会某种字体在设计时能显示,在打印预览中确无法显示,当然也无法导出到PDF文件中。 测试见附件
此帖子包含附件: 大小: 18.4K
----------------------------------------------
-
作者:
2010/4/6 18:47:43
7楼:
谢谢xjia! 按你的方法解决问题。
----------------------------------------------
-
作者:
2010/4/6 18:53:46
8楼:
谢谢xjia :-) 我换成4.9.35(没有4.9.38),Arial 字体好像还是不行(设计和预览都没有问题),不知道问题出在了什么地方. 我用的是win7,win7下有Arial Unicode MS和Arial,也可能和这个有关,Arial Unicode MS可以正常显示.不知道xjia测试中是不是也有这么两种字体.换到XP下只有Arial字体,测试还是不能正常显示. ;-(
----------------------------------------------
这个世界上还有很多比钱更重要的东西,比如说意大利面---加菲猫
作者:
xjia (xjia)
★☆☆☆☆
-
盒子活跃会员
2010/4/7 12:16:18
9楼:
回楼上,你这个问题没办法了 见6楼的回复,我测试也碰到过这情况,第一次用设计报表时可以显示的,关闭设计器后,再打开设计器就不显示了;有时是在设计模式下是正常的,但程序运行时就不显示。很奇怪,不知道怎么解决。 你修改完后,把FR的DPK都重新编译一下,看看有用不。 我还在用D7+FR4.7的,没用最新版,PDF字体的问题照我说的那个方法改肯定没问题。 我的OS是WIN2K3的
----------------------------------------------
-
作者:
2010/4/7 19:35:42
10楼:
还是谢谢xjia,我至少解决了宋体的显示,这个基本就足够了,估计可能还是和具体的OS环境和IDE环境有关 非常感谢!
----------------------------------------------
这个世界上还有很多比钱更重要的东西,比如说意大利面---加菲猫
作者:
2010/4/7 23:25:58
11楼:
h
----------------------------------------------
3291763
作者:
2012/4/20 22:18:03
12楼:
Arial字体不错,能在FastReport里显示一些特殊字符,New Times Rome就是有问题。
----------------------------------------------
只有偏执狂才能生存!
作者:
2012/11/27 16:40:56
13楼:
FastReport导出中文PDF时,出现乱码,是因为FastReport报表中的中文要用双字节字体,这样才不会成为乱码。原文链接分享给大家:http://www.fastreportcn.com/FAQ/201.html
----------------------------------------------
-