这个问题困扰了公司里面很多比较资深的人,尝试过很多方案,都是失败告终,
希望有类是经验的朋友们献策。
如果问题描述的不是很清晰的话,可以通过我的QQ【1103205613】进行探讨。
期待您的分享。。。。。
######
将windows下的字体复制一份到linux下面就可以了
######补充两问题, 1.在fontsConfig.xml中期中的alias 与mapping ,encoding,composite它们之间是如何区别的, 2. 在*.rpt文件中定义的font-famliy的属性名称是如何和系统的字体进行匹配的?在配置文件中是如何体现的, 求解。。。。。。 期待中。。。。######谢谢你的回复,这种方案,尝试过,但是没有效果,######你把那几个签名的xml中的类删掉。不过可能会引起无法访问本地文件。或者你重新签名一下。######谢谢,我尝试过将META-INF中的文件跟清除掉,但是我有个问题,对于jar进行签名的话,是否需要遵循jar签名的机制,还是单独的重新进行签名就可? 同时还有个问题,为什么在weblogic中进行发布的时候,就不会出现这种问题?######
引用来自“保罗的寓言”的答案
这个问题困扰了公司里面很多比较资深的人,尝试过很多方案,都是失败告终,
希望有类是经验的朋友们献策。
如果问题描述的不是很清晰的话,可以通过我的QQ【1103205613】进行探讨。
期待您的分享。。。。。
保罗,你好!
不晓得你这个问题最后怎么解决的呢?
我也遇到你同样的问题。导出PDF后,字体样式改变,一些没有相应字体的用户电脑打开该PDF文件时,提示需要下载字体包。
开发环境:Birt3.7.0,Windows。
在Eclipse Birt环境中,通过修改plugins\org.eclipse.birt.report.engine.fonts_3.7.0.v20110602\fontsConfig_pdf.xml
<Code>
<font>
<font-aliases>
<mapping name="serif" font-family="SimSun" />
<mapping name="sans-serif" font-family="SimSun" />
<mapping name="monospace" font-family="SimSun" />
</font-aliases>
<font-encodings>
<encoding font-family="SimSun" encoding="utf-8" />
<encoding font-family="Times-Roman" encoding="Cp1252" />
<encoding font-family="Helvetica" encoding="Cp1252" />
<encoding font-family="Courier" encoding="Cp1252" />
<encoding font-family="Zapfdingbats" encoding="Cp1252" />
<encoding font-family="Symbol" encoding="Cp1252" />
<encoding font-family="STSong-Light" encoding="UniGB-UCS2-H" />
<encoding font-family="STSongStd-Light" encoding="UniGB-UCS2-H" />
<encoding font-family="MHei-Medium" encoding="UniCNS-UCS2-H" />
<encoding font-family="MSung-Light" encoding="UniCNS-UCS2-H" />
<encoding font-family="MSungStd-Light" encoding="UniCNS-UCS2-H" />
<encoding font-family="HeiseiMin-W3" encoding="UniJIS-UCS2-H" />
<encoding font-family="HeiseiKakuGo-W5" encoding="UniJIS-UCS2-H" />
<encoding font-family="KozMinPro-Regular" encoding="UniJIS-UCS2-H" />
<encoding font-family="HYGoThic-Medium" encoding="UniKS-UCS2-H" />
<encoding font-family="HYSMyeongJo-Medium" encoding="UniKS-UCS2-H" />
<encoding font-family="HYSMyeongJoStd" encoding="UniKS-UCS2-H" />
</font-encodings>
<composite-font name="all-fonts">
<font font-family="Times-Roman" catalog="Western" />
<font font-family="SimSun" catalog="Chinese" />
<font font-family="HeiseiKakuGo-W5" catalog="Japanese" />
<font font-family="HYGoThic-Medium" catalog="Korean" />
</composite-font>
</font>
</Code>
在Birt中导出PDF,其字体都转化为宋体。其他用户也可以正常访问。但是无法部署到birt3.7.0环境中。因为只有在org.eclipse.birt.runtime_3.7.0.v20110615-1818.jar修改。把fontsConfig_pdf.xml添加进去后,导出PDF后打开不了。
我的问题是:怎么去修改org.eclipse.birt.runtime_3.7.0.v20110615-1818.jar这个文件才有效呢?
######
引用来自“小黑哥L”的答案
引用来自“保罗的寓言”的答案
这个问题困扰了公司里面很多比较资深的人,尝试过很多方案,都是失败告终,
希望有类是经验的朋友们献策。
如果问题描述的不是很清晰的话,可以通过我的QQ【1103205613】进行探讨。
期待您的分享。。。。。
保罗,你好!
不晓得你这个问题最后怎么解决的呢?
我也遇到你同样的问题。导出PDF后,字体样式改变,一些没有相应字体的用户电脑打开该PDF文件时,提示需要下载字体包。
开发环境:Birt3.7.0,Windows。
在Eclipse Birt环境中,通过修改plugins\org.eclipse.birt.report.engine.fonts_3.7.0.v20110602\fontsConfig_pdf.xml
<Code>
<font>
<font-aliases>
<mapping name="serif" font-family="SimSun" />
<mapping name="sans-serif" font-family="SimSun" />
<mapping name="monospace" font-family="SimSun" />
</font-aliases>
<font-encodings>
<encoding font-family="SimSun" encoding="utf-8" />
<encoding font-family="Times-Roman" encoding="Cp1252" />
<encoding font-family="Helvetica" encoding="Cp1252" />
<encoding font-family="Courier" encoding="Cp1252" />
<encoding font-family="Zapfdingbats" encoding="Cp1252" />
<encoding font-family="Symbol" encoding="Cp1252" />
<encoding font-family="STSong-Light" encoding="UniGB-UCS2-H" />
<encoding font-family="STSongStd-Light" encoding="UniGB-UCS2-H" />
<encoding font-family="MHei-Medium" encoding="UniCNS-UCS2-H" />
<encoding font-family="MSung-Light" encoding="UniCNS-UCS2-H" />
<encoding font-family="MSungStd-Light" encoding="UniCNS-UCS2-H" />
<encoding font-family="HeiseiMin-W3" encoding="UniJIS-UCS2-H" />
<encoding font-family="HeiseiKakuGo-W5" encoding="UniJIS-UCS2-H" />
<encoding font-family="KozMinPro-Regular" encoding="UniJIS-UCS2-H" />
<encoding font-family="HYGoThic-Medium" encoding="UniKS-UCS2-H" />
<encoding font-family="HYSMyeongJo-Medium" encoding="UniKS-UCS2-H" />
<encoding font-family="HYSMyeongJoStd" encoding="UniKS-UCS2-H" />
</font-encodings>
<composite-font name="all-fonts">
<font font-family="Times-Roman" catalog="Western" />
<font font-family="SimSun" catalog="Chinese" />
<font font-family="HeiseiKakuGo-W5" catalog="Japanese" />
<font font-family="HYGoThic-Medium" catalog="Korean" />
</composite-font>
</font>
</Code>
在Birt中导出PDF,其字体都转化为宋体。其他用户也可以正常访问。但是无法部署到birt3.7.0环境中。因为只有在org.eclipse.birt.runtime_3.7.0.v20110615-1818.jar修改。把fontsConfig_pdf.xml添加进去后,导出PDF后打开不了。
我的问题是:怎么去修改org.eclipse.birt.runtime_3.7.0.v20110615-1818.jar这个文件才有效呢?
我的邮箱是:alexxr.liu@sodexo.com
保罗兄如果能给点建议,将不胜感激!谢谢了先!
######
1. 由于birt中的org.eclipse.birt.runtime_3.7.0.v20110615-1818.jar 是进过数字指纹的,一般修改了fontsConfig_pdf.xml都会有问题的,可以在外部引入的方式进行指定birt的报表的字体设置,如果没有很特别的中文的话,是不需要的处理字体的,因为birt pdf中使用的字体中基本上包含sumlight 字体的。即使没有的话,也会自动提示下载字体的。
2. 针对我题的问题的背景是,birt报表项目进行过运行环境的迁移,具体是有tomcat环境迁移到weblogic下面,造成导出pdf空白的主要原因
a. 字体的缺失,
b. birt 中依赖的EMCASCript 相关的包和weblogic中的依赖包中存在版本差异,造成weblogic在启动的时候加载自身的包之后,不在加载项目中的有冲突的包,
解决: 将birt中的包,加入到启动启动脚本中,
######
引用来自“保罗的寓言”的答案
1. 由于birt中的org.eclipse.birt.runtime_3.7.0.v20110615-1818.jar 是进过数字指纹的,一般修改了fontsConfig_pdf.xml都会有问题的,可以在外部引入的方式进行指定birt的报表的字体设置,如果没有很特别的中文的话,是不需要的处理字体的,因为birt pdf中使用的字体中基本上包含sumlight 字体的。即使没有的话,也会自动提示下载字体的。
2. 针对我题的问题的背景是,birt报表项目进行过运行环境的迁移,具体是有tomcat环境迁移到weblogic下面,造成导出pdf空白的主要原因
a. 字体的缺失,
b. birt 中依赖的EMCASCript 相关的包和weblogic中的依赖包中存在版本差异,造成weblogic在启动的时候加载自身的包之后,不在加载项目中的有冲突的包,
解决: 将birt中的包,加入到启动启动脚本中,
非常感谢保罗兄的详细答复!
由于导出来的报表是需要发给许多不同的客户查看,有些客户没有安装相应的字体会提示下载AdobePDF的字体包,这给用户带来很大的不便。
可行的方法是在设计报表的时候,指定所有中文为宋体。但目前有上百个已存在的报表,修改测试均非常耗时,且以后开发也得时刻小心同样的问题。所以想找个一劳永逸的法子。
你提示的“在外部引入的方式进行指定birt的报表的字体设置”,这个具体些是怎样的办法呢?
######给相应的label、text等设置为宋体试试######换成FineReport应该很好解决######
用FineReport来导出相对没有那么多问题:
1. 导出格式
PDF:导出PDF格式文件;
Excel:导出Excel格式文件,又分为分页导出、原样导出、分页分Sheet导出,详细请查看
Excel多种导出方式文档;
Word:导出Word格式文件,不支持导出悬浮元素,详细请查看
Word导出
Image:导出为图片,又分为JPG、PNG、GIF和BMP四种格式。
注:将报表输出为Word不支持导出悬浮元素和多Sheet下的不同页面设置;excel不支持Html中部分标签,单元格背景只支持纯色,另外在导出为图片时,不建议使用GIF格式,可以采用PNG替代,原因是导出GIF需要的内存比较大。
另:聚合报表和表单不支持导出。
2. 步骤
预览模板,点击工具栏中的
输出,即可以对模板进行多种格式的导出,如下图所示:
注:若模板有参数,需要查询出数据后才能够点击输出进行导出。
3. 示例
下面我们以GettingStarted.cpt导出成PDF样式为例说明导出方法。
3.1 打开模板
打开模板:
%FR_HOME%\WebReport\WEB-INF\reportlets\GettingStarted.cpt。
3.2 分页预览
点击分页预览,选择完参数后,点击查询。
3.3 导出
点击工具栏上的
输出按钮,然后选择PDF格式,会弹出如下图所示的对话框:
点击保存,选择保存路径即可将数据导出成PDF格式。