gpt4 book ai didi

c# - 使用 Calibri 字体连字防止 LocalReport.Render

转载 作者:可可西里 更新时间:2023-11-01 08:28:08 27 4
gpt4 key购买 nike

我遇到了 RDLC 报告在生成为 PDF 时打印空字符的问题。它只影响 font ligatures我理解为字母组合,例如:

  • ti
  • 英尺
  • tt

我的研究表明,这些字符组合组合成一个字形,我在打印出来时将其视为空白。剪报示例:

在 PDF 上:

enter image description here

enter image description here

打印:

enter image description here

enter image description here

因此症状是:

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

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

enter image description here

我愿意解决这个问题:

  • 预防 LocalReport.Render来自组合连字
  • 启用 Server 2003 以将字体视为我的 Windows 7 机器

我不确定如何/从哪里开始比较字体环境,因此非常感谢您的想法和指示。

更新:

感谢下面的回答,我检查了两台机器上的 charmaps,但它们看起来是一样的:

服务器(问题所在):

enter image description here

本地(没问题):

enter image description here

这也让我想起了我安装字体的方法是把字体文件复制过来直接安装。两个版本都是 5.72、数字签名、TrueType 大纲,但是服务器显示 OpenType 字体 而本地显示 OpenType 布局(可能只是不同的操作系统显示)。

有趣的一点是,如果我在本地使用 Calibri Regular 48,我会看到连字:

enter image description here

而服务器不使用它:

enter image description here

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

最佳答案

您能否通过在字符之间插入单词连接符 (U+2060) 或在较旧的系统上使用零宽度无断行符 (U+FEFF) 来搜索并替换和断开连字?这应该强制它不使用连字。

关于c# - 使用 Calibri 字体连字防止 LocalReport.Render,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20193102/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com