首页 > 解决方案 > 如何在条形码行之间添加空格 - iTextSharp

问题描述

我正在内存中创建条形码并将其显示在网络上,它有两个问题;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, 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;
    }
}

标签: c#imageitextbarcodebarcode-scanner

解决方案


推荐阅读