c# - 如何在条形码行之间添加空格 - 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;
}
}
解决方案
推荐阅读
- spring - 使用 Junit 和 Mockito 嵌套异常问题测试 POST Api
- python - Scrapy & Selenium:如何在循环中调用方法
- design-patterns - 如何使用可更新缓存实现存储库模式
- angular - 带有辅助路线的 Angular 6 材质选项卡导航
- mongodb - 如何在开始测试之前删除 mongodb 中的所有模型并注册用户?
- java - 什么是@constructorproperties?这是属于 J2SE 还是 Spring?
- java - HTTP 500 内部服务器错误:在容器化我的 Java Web 应用程序时
- templates - 更改 svelte 模板的默认位置
- javascript - 如何在同一个文本框中输入日期和文本
- r - 建立一个虚假的课程目录