【问题标题】:Adding String Literal to Generated Barcode image将字符串文字添加到生成的条形码图像
【发布时间】:2016-03-28 13:28:33
【问题描述】:

我正在创建一个 Web 应用程序,它可以生成使用数据绑定信息的条形码。该信息是来自数据库的名称。

条形码生成正确,但我想给它添加文字。

这是我的条形码生成器代码。

protected void btnGenerate_Click(object sender, EventArgs e)
{
   foreach (ListItem item in BarCode.Items)
   {
      if (item.Selected)
      {
          string barCode = Barcode + txtCode.Text;
          System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
          using (Bitmap bitMap = new Bitmap(barCode.Length * 50, 90))
          {
            using (Graphics graphics = Graphics.FromImage(bitMap))
            {
               Font oFont = new Font("IDAutomationHC39M", 18);
               PointF point = new PointF(3f, 3f);
               SolidBrush blackBrush = new SolidBrush(Color.Black);
               SolidBrush whiteBrush = new SolidBrush(Color.White);
               graphics.FillRectangle(whiteBrush, 0, 0, bitMap.Width, bitMap.Height);
               graphics.DrawString(barCode, oFont, blackBrush, point);
            }
            using (MemoryStream ms = new MemoryStream())
            {
                bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                byte[] byteImage = ms.ToArray();

                Convert.ToBase64String(byteImage);
                imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
             }

                  plBarCode.Controls.Add(imgBarCode);
         }
     }

   }

}

我要添加

“数量:_____________”

在生成条形码时位于条形码下方。虽然我相信条形码的格式仅限于代码,我不相信我可以创建字符串文字

string lit = "QTY:_______________";

并将其添加到条形码字符串中:

string barCode = Barcode + txtCode.Text + Environement.NewLine + lit;

是否可以通过编程方式在下面添加?

【问题讨论】:

    标签: c# barcode


    【解决方案1】:

    如果我没听错的话 你不需要在代码中添加文本,你需要在条形码下打印一些文本。只需添加:

    using (Graphics graphics 
    

    像这样的:

    // put coordinates here:
    RectangleF rectf = new RectangleF(70, 90, 90, 50);
    
    
    graphics.DrawString(lit , new Font("Tahoma",8), Brushes.Black, rectf);
    

    【讨论】:

    • 是的,我相信是这样的。虽然当我添加它时它不起作用,但我添加了一个新块并添加了此代码,现在它打印了没有条形码的“数量:__________”,所以这个想法就在那里。我现在需要弄清楚如何将它添加到原始块中。我不知道为什么您的示例无法按预期工作。
    • @d_li1121,你调整了rectf的坐标吗?,显示新版本的代码
    • 是的,我在搞乱坐标,但我对此还很陌生,所以我一直把它放在条形码后面。 RectangleF rectf = new RectangleF(20, 40, 40, 30);我也在研究以了解格式。
    • 我了解坐标的工作原理,但我相信我没有看到想要的结果,这是因为条形码矩形的大小。如果我改变条形码的大小,我会看到所有内容都完全重叠。所以,现在至少我的方向是正确的。
    • 当然,我对矩形坐标的投入如此之大,以至于我忽略了条形码矩形长度本身。我搞定了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多