使用Calibri字体连接防止LocalReport.Render

m.e*_*son 12 c# pdf fonts rdlc ligature

我在RDLC报告中以PDF格式打印空字符时遇到问题.它只会影响我理解为字母组合的字体连字,例如:

  • TI
  • FT
  • 科幻
  • TT

我的研究表明这些字符组合被组合成一个字形,我在打印时看到它是一个空白区域.示例剪报:

在PDF上:

在此输入图像描述

在此输入图像描述

印刷:

在此输入图像描述

在此输入图像描述

因此症状是:

  • PDF在屏幕上显示正常
  • 打印(物理或使用XPS编写器)时,所有连字都显示为空格

到目前为止,我已将其缩小为特定字体(Calibri)和特定服务器(Windows Server 2003 R2).PDF嵌入了字体:

在此输入图像描述

为了解决这个问题,我很满意:

  • 阻止LocalReport.Render组合连字
  • 启用S​​erver 2003将字体视为我的Windows 7计算机

我不确定如何/在哪里开始比较字体环境,因此非常感谢想法和指针.

更新:

感谢下面的答案,我检查了两台机器上的charmaps,但它们看起来完全相同:

服务器(问题所在):

在此输入图像描述

本地(没有问题):

在此输入图像描述

这也提醒我,我通过复制字体文件并直接安装它来安装字体.两个版本都是5.72,数字签名,TrueType轮廓,但服务器显示OpenType Font本地显示OpenType Layout(可能只是不同的操作系统显示).

一个有趣的观点是,如果我在本地使用Calibri Regular 48,我会看到结扎:

在此输入图像描述

而服务器不使用它:

在此输入图像描述

此外,两个PDF都在同一台机器上打印,但它只是服务器上生成的PDF显示问题,因此我认为打印机驱动程序不是问题?

Yim*_*ong 4

你可以通过在字符之间插入单词joiner字符(U + 2060)或旧系统来进行搜索并替换和断开连字,零宽度没有中断空格(U + FEFF)吗?这应该强制它不使用连字.