我这两天在用报表文件导出pdf时发现字间距非常小,字体紧挨在一起,在fastreport.net中正常预览时是正常的,当在程序导出的时候就会变得非常密集。
刚开始以为是报表文件的问题,就一直在修改报表文件,在网上搜改变字间距的方法,也没找到有用的答案。陷入瓶颈。。。
后来建了一个简单的报表文件,只含有文本框,在系统中也是这种情况,同样的报表文件放到另一个系统中测试,显示是正常的
新建一个项目,这个简单的报表文件也显示正常,这时候只能判断出来是系统出问题了,再然后就是把那个导出方法放到其他两个系统中测试,最后才发现是导出二维码使用的包QrCode.net的问题,只要加上这个包导出的pdf的字体就会出现问题。
上面的思考过程说着简单,还是被这个bug难住了两三天时间,生成二维码的包改用QRCoder
方法如下
public Bitmap ToQR(string strCode)
{
QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.L);
QRCode qrcode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrcode.GetGraphic(10, Color.Black, Color.White, null, 15, 6, false);
return qrCodeImage;
}
生成二维码的方法参考网址:https://www.cnblogs.com/wlays/p/7994393.html