我正在使用Microsoft.Reporting.WinForms.dll将RDLC渲染为pdf文件,但是当我使用Adobe Reader打开pdf文件时,我遇到了一些特殊土耳其语字符的问题。在pdf中,它们看起来很正常,但是当我尝试使用CTRL + F在pdf文件中搜索某些单词。我找不到这些话。即使我的pdf文件包含这些土耳其字符。另外,当我将这些单词复制粘贴到文件中时,我得到诸如之类的字符。有趣的是,我也使用相同的dll将RDLC呈现为Excel文件。我使用相同的类,相同的代码和相同的方法。我在excel文件中没有这个问题。
我在WinForms.dll中使用byte[] Render(string format);
方法进行渲染。也许某些特殊字符的ASCII码超出了字节数组的范围,也许因为这个原因,它无法将所有字符都呈现为pdf格式,但我不确定。
谢谢...
答案 0 :(得分:0)
根据microsoft article,存在一个特殊字符的问题,该问题已在sql server 2014中修复,相应的reportviewer dll将是2015运行时。
也许您应该升级
答案 1 :(得分:0)
我有类似的问题。我的应用程序使用LocalReport生成PDF。 我的解决方案是: 1-修改RDLC XML模式以使用2016版本。更改您拥有的内容。
<Report xmlns = "http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns: rd = "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">.
然后,修改架构,它不再与以前的版本相同(数据源会上升...)
2-从DeviceInfo中删除<EmbedFonts>None</EmbedFonts>
。
通过这些更改,我对特殊字符进行了很好的绘制和打印。