关于jasper report 中文问题,大虾救命阿!

FrankSparrow 2003-10-15 06:28:31
我正在改jasper/sample/webapps的例子,想显示中文,我已经把jasper的xml字体改为宋体了,其实我是用iReport 生成一个中文的xml了,我把对应的字体设置那部分修改了,如:<reportFont name="Arial_Normal" isDefault="true" fontName="宋体" size="12" pdfFontName="STSong-Light" pdfEncoding="CP1252" isPdfEmbedded="false"/>
但是在jsp中总是编译不过去,说找不到这个字体STSong-Light。把字体文件放到和xml文件相同的目录也不行,没有办法我直接指定pdfFontName="c:\\winnt\\simsun.ttc"还是过不去 说这个字体对应的CP1252没有登记什么的。
真把我整死了阿。
...全文
218 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
FrankSparrow 2003-10-17
  • 打赏
  • 举报
回复
万分感谢! lmh7607(海风)(80) ,glassprogrammer() (20)
glassprogrammer() 的方法我以前试过,不知道怎么回事没有通过。我在iReport的lib下找到了那个jar。给分!另外我也遇到个问题。我现在想把resultset作为参数传给xml,
我在jasper/sample/demo/query的例子中看到把connnection作为参数传给xml但是如果sql语句是活的就不行了。那位曾经作过帮我一下好吗?或者请给我个例子,让我参考一下。yang_ali@163.net
请到http://expert.csdn.net/Expert/topic/2364/2364670.xml?temp=.424679回复领分
再次谢谢两位的热心帮忙!!!
glassprogrammer 2003-10-16
  • 打赏
  • 举报
回复
呵呵, 我使用
<font fontName="宋体" size="14" isBold="true" pdfFontName="SURSONG.TTF" pdfEncoding="Helvetica" isPdfEmbedded="true"/> 来做的, 注意运行时(主要是输出为PDF时)需要把字体文件设置到 Classpath 中, 例如你可以把 C:\WINNT\Fonts 放到 classpath 中, 如果使用在 Web Application, 我就干脆把用到的几个 TTF 压缩到一个 jar 中, 把这个 jar 放到 WEB-INF\lib 下.

各位可以试试看, 不需要 iTextAsian.jar 支持的.
lmh7607 2003-10-16
  • 打赏
  • 举报
回复
转别人写的,很全,应该可以了.

首先要下载一个iTextAsian.jar,这是一个支持中文、韩文、日文的包。然后在classpath中加入这个包的路径,我的classpath是这样设置的:

/usr/iplanet/servers/oms_classes/jasperreports.jar:/usr/iplanet/servers/oms_classes/commons-beanutils.jar:/usr/iplanet/servers/oms_classes/commons-collections.jar:/usr/iplanet/servers/oms_classes/commons-digester.jar:/usr/iplanet/servers/oms_classes/commons-logging.jar:/usr/iplanet/servers/oms_classes/commons-logging-api.jar:/usr/iplanet/servers/oms_classes/itext-0.96.jar:/usr/iplanet/servers/oms_classes/iTextAsian.jar:/usr/iplanet/servers/oms_classes/jakarta-poi-1.5.1-final-20020615.jar:/usr/iplanet/servers/oms_classes/xercesImpl.jar:/usr/iplanet/servers/oms_classes/xmlParserAPIs.jar

报表的xml文件的第一行应该如下:
<?xml version="1.0" encoding="gb2312" ?>
报表的字体定义如下:
<reportFont name="Song_Normal" isDefault="true" fontName="SimSun" size="11" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="false"/>

报表的xml文件调用此字体则可定成如下样式:
<staticText>
<reportElement x="375" y="55" width="110" height="15" forecolor="#000000" mode="Opaque"/>
<textElement textAlignment="Left">
<font reportFont="Song_Normal" size="9"/>
</textElement>
<text>合同编号 :</text>
</staticText>

这样完全可以解决中文问题。
不过我现在也遇到一个棘手的问题,我用几乎相似的设置在winxp下可以顺利的生成pdf报表,但是在linux下则调用JasperRunManager.runReportToPdf生成pdf报表时会出错,不过编译成jasper文件那一步可以通过。(classpth设置如上)。在两个系统中我用的应用服务器均是iplanet,不知有没有人遇到过类似问题,请不吝赐教!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧