问题描述
我正在内存中创建条形码并将其显示在Web上,这有两个问题: 1)条形码长度小(第二张图片),文本质量不高(第二张图片)。
我试图在条形码长度和文本质量都很好的第一张图像中显示结果。
iTextSharp版本:5.5.13.1
这是代码
// create a blank image
System.Drawing.Bitmap bmpimg;
bmpimg = GenerateBarCodeImage65(barCode);
context.Response.Write("<img src='data:image/bmp;base64," + ImagetoBase64(bmpimg,ImageFormat.Bmp) + "' />");
context.Response.Write("<script>window.print();</script>");
context.Response.End();
bmpimg.dispose();
barCodeImg.dispose();
private System.Drawing.Bitmap GenerateBarCodeImage65(string barcode)
{
System.Drawing.Bitmap bmpimg = new Bitmap(236,88);
Graphics graphics = graphics.FromImage(bmpimg);
graphics.SmoothingMode = System.Drawing.drawing2d.SmoothingMode.HighQuality;
graphics.PixelOffsetMode = System.Drawing.drawing2d.PixelOffsetMode.HighQuality;
graphics.CompositingQuality = System.Drawing.drawing2d.CompositingQuality.HighQuality;
graphics.InterpolationMode = System.Drawing.drawing2d.InterpolationMode.HighQualityBicubic;
graphics.FillRectangle(Brushes.White,new Drawing.Rectangle(0,236,88));
// generate the Code128 barcode
graphics.DrawImage(CreateBarcode(barcode,65),5,5);
// generate the text below the barcode image.
graphics.DrawString(barcode,new Drawing.Font(FontFamily.GenericSansSerif,10),Brushes.Black,new Point(5,68));
graphics.dispose();
return bmpimg;
}
private System.Drawing.Image CreateBarcode(string barcodeLen,Int32 height)
{
Barcode128 code128 = new Barcode128();
code128.CodeType = iTextSharp.text.pdf.Barcode.CODE128;
code128.ChecksumText = true;
code128.GenerateChecksum = true;
code128.BarHeight = height;
code128.Code = barcodeLen;
barCodeImg = code128.CreateDrawingImage(System.Drawing.Color.Black,System.Drawing.Color.White);
return barCodeImg;
}
private string ImagetoBase64(Drawing.Image image,System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
image.Save(ms,format);
byte[] imageBytes = ms.ToArray();
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)