我在.Net中实现了一个Web门户,它集成了一个ReportViewer控件来加载SSRS报告。为了自定义报告,我在rdl报告文件中使用自己的字体。使用css中的font-family声明在客户端动态加载Font:
@font-face{
font-family: 'Helvetica 35 Thin';
src:url('../fonts/HelvNeue35_W1G.eot?#iefix');
src:url('../fonts/HelvNeue35_W1G.eot?#iefix') format('eot'), url('../fonts/HelvNeue35_W1G.woff2') format('woff2'), url('../fonts/HelvNeue35_W1G.woff') format('woff'), url('../fonts/HelvNeue35_W1G.ttf') format('truetype'), url('../fonts/HelvNeue35_W1G.svg') format('svg');
}
使用IIS Express在Visual Studio中完成所有工作:在每个Web浏览器上正确加载字体并在报告中正确显示。这也适用于我的开发服务器。但是,由于我部署在集成服务器上,因此不会显示字体。 我指定在Visual和集成平台上使用本地相同的SSRS服务器。
我调查过,发现IIS Express的ReportViewer控件生成的SSRS代码与IIS 8之间存在差异。
事实上,从Visual Studio执行中我发现:
.A6b8151803b1943dc956fcd4b577a57f413{word-wrap:break-word;
white-space:pre-wrap;padding-left:2pt;padding-top:2pt;
padding-right:2pt;padding-bottom:2pt;border:1pt none Black;
background-color:Transparent;font-style:normal;
font-family:'Helvetica 35 Thin';
从IIS 8我发现:
.A87918d1b077d4156abf69d70d7bd400213{word-wrap:break-word;
white-space:pre-wrap;padding-left:2pt;padding-top:2pt;
padding-right:2pt;padding-bottom:2pt;border:1pt none Black;
background-color:Transparent;font-style:normal;
font-family:Helvetica 35 Thin;
引用已从IIS 8中删除。由于字体名称包含空格字符,因此解释了浏览器未找到字体的原因。
现在我需要解释为什么从这个平台删除引用。有人遇到过这个问题吗?
感谢您的帮助。
答案 0 :(得分:0)
我们刚刚遇到过这个问题。 我们通过使用字体名称的表达式并将其设置为
来修复它=“'名称空格的字体'”
如果您使用的是IE,那么使用兼容模式也可能会为您解决问题。