生成文本与二维码打印质量低下,调整图形设置无效求助
解决打印文本与二维码质量极差的问题
问题根源
你的代码先将所有内容绘制到中间Bitmap,再转绘到打印画布上,这会把矢量文本和二维码转换成低分辨率位图,导致打印时模糊失真;同时Bitmap的分辨率设置时机错误,打印画布的高质量渲染参数也未配置完全。
修复方案
直接在打印事件提供的e.Graphics上绘制内容,跳过中间Bitmap,同时配置打印画布的全量高质量参数,保留内容的矢量特性以获取最佳打印效果。
修改后的代码
private void doc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { // 配置打印画布的高质量渲染参数 var printGraphics = e.Graphics; printGraphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; printGraphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; printGraphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; printGraphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; printGraphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; // 用using包裹字体,自动释放GDI+资源 using (var font1 = new System.Drawing.Font("Tahoma", 35, FontStyle.Bold, GraphicsUnit.Point)) using (var fontjob = new System.Drawing.Font("Tahoma", 20, FontStyle.Regular, GraphicsUnit.Point)) { StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; // 绘制用户名 Rectangle rectname = new Rectangle(100, 100, 363, 100); printGraphics.DrawString(user_name, font1, Brushes.Black, rectname, stringFormat); // 绘制职位标题 Rectangle rectnjob = new Rectangle(100, 200, 363, 50); printGraphics.DrawString("JOB TITLE", fontjob, Brushes.Black, rectnjob, stringFormat); // 直接在打印画布上绘制二维码,避免中间位图缩放损失 Zen.Barcode.CodeQrBarcodeDraw qrcode = Zen.Barcode.BarcodeDrawFactory.CodeQr; qrcode.Draw(printGraphics, barcode_token_key, new Rectangle(100, 300, 100, 100)); } }
关键改动说明
- 移除中间Bitmap:直接在打印画布上绘制,保留文本和二维码的矢量特性,彻底避免位图转译的质量损失
- 完善渲染参数:补充
CompositingQuality并升级插值模式,确保全链路高质量渲染 - 资源自动释放:用
using管理字体资源,防止GDI+资源泄漏 - 二维码直接输出:使用
Draw重载直接绘制到打印画布,跳过中间图片生成与缩放步骤
额外优化建议
- 确认打印机设置已调至最高分辨率(如300DPI)
- 若必须使用中间Bitmap,需在创建时立即指定分辨率:
Bitmap flag = new Bitmap(xwidth, xheight, System.Drawing.Imaging.PixelFormat.Format32bppArgb); flag.SetResolution(300, 300);

内容的提问来源于stack exchange,提问作者Joe Jbr
相关产品推荐
相关产品推荐

