我這兩天在用報表文件導出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