调用window.print()打印图片
后台用gdi加的文字。
Bitmap bitmap = new Bitmap(265,300);
Graphics g = Graphics.FromImage(bitmap);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel ;
//g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.Clear(Color.White);//透明
float fontSize18 = 18;
float fontSize14 = 14;
float fontSize12 = 12;
float fontSize8 = 8;
Font fontC = new Font("微软雅黑", fontSize12, FontStyle.Regular);
StringFormat format = new StringFormat(StringFormatFlags.NoClip);
g.DrawString("IQC合格标签(RoHS)", new Font("宋体", 20, FontStyle.Bold, GraphicsUnit.Pixel), new SolidBrush(Color.Black), new PointF(0, 0));
SizeF sizef1 = g.MeasureString("IQC合格标签(RoHS)", new Font("宋体", 20, FontStyle.Bold,GraphicsUnit.Pixel), PointF.Empty, format);
可能要设置一下 Graphics.SmoothingMode
Graphics 的几个属性,有设置的,有效果,但是依然模糊。
@BetterCoder:
我也是通过Graphics画图打印的,打印出来也比较清晰,是不是你的打印机设置有问题?
@无 影: 我360极速 你用的啥浏览器,关键代码也贴点看看?
@BetterCoder:
我这是在 VS 里面用 Graphics 画出来的,然后打印到 xps打印机,但是我试过了,直接打印到 A4纸也是很清晰的。
var pen = new Pen(Brushes.Black) { Width = 0.4F };
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
const int persion_height = 75;//条码Y轴间隔距离
System.Drawing.Font font0 = new Font("微软雅黑", 3, FontStyle.Regular, GraphicsUnit.Millimeter);
Code128 _Code = new Code128();
Font font1 = new Font("微软雅黑", 3.5F, FontStyle.Bold, GraphicsUnit.Millimeter);
Font font2 = new Font("微软雅黑", 5, FontStyle.Bold, GraphicsUnit.Millimeter);
Font font3 = new Font("宋体", 2.8F, FontStyle.Regular, GraphicsUnit.Millimeter);
string[] TitleList = Title.Split('@');
var start_top = 90;
g.DrawString(string.Format("{0}", TitleList[0].ToString().ToUpper()), font1, Brushes.Black, 20, 23);
g.DrawString(string.Format("{0}", DateTime.Now.ToString("MM/dd/yyyy")), font1, Brushes.Black, 650, 23);
string fsdf = TitleList[0].ToString();
var imgTemp1 = _Code.GetCodeImage(TitleList[0].ToString().ToUpper(), Code128.Encode.Code128A);
g.DrawImage(imgTemp1, 300, 18, 150, 27);
@无 影: 跟字体、选择打印机都有关系,还有 GraphicsUnit.Pixel和GraphicsUnit.Millimeter单位不同 ,效果也有出入。
@BetterCoder: 解决了没?
@无 影: 选你说的xps 能出来跟你一样的效果了,但是我这个条码打印机不行。还是模糊,我打算前端生成,再调用打印。。
Graphics.clear(Color.White); 加上这个试试
有加的,你看我的代码第五行。
@BetterCoder: 改下字体试试,把微软雅黑换成宋体
@徒然喜欢你: 差不多的样子 试了的