2016-03-28 16 views
1

データバインドされた情報を使用するバーコードを生成する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); 
     } 
    } 

    } 

} 

私は

"QTY:_____________" を追加したい、それが生成されますバーコードの下に

を。私は信じているが、バーコードのフォーマットは、コードに制限されていると私は、文字列リテラル

string lit = "QTY:_______________"; 

を作成することができると信じてバーコード文字列に追加しないでください:

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

はそれが可能ですプログラムの下に追加するには?

答えて

1

あなたが正しく理解している場合コードにテキストを追加する必要はありません。バーコードの下にテキストを印刷する必要があります。このような

using (Graphics graphics 

somthig::ちょうどに追加

// put coordinates here: 
RectangleF rectf = new RectangleF(70, 90, 90, 50); 


graphics.DrawString(lit , new Font("Tahoma",8), Brushes.Black, rectf); 
+0

はい、私はそれがこのようなものであると信じています。私はそれを追加すると機能しませんが、代わりに新しいブロックを追加してこのコードを追加し、バーコードなしで "QTY:__________"を印刷するので、そこにアイデアがあります。私は今、元のブロックに追加する方法を理解する必要があります。あなたの例が意図したとおりに機能しない理由は分かりません。 – walangala

+0

@ d_li1121、rectfの座標を調整しましたか?、コードの新しいバージョンを表示します – gabba

+0

そうですが、私は座標をめちゃくちゃにしていますが、私はこれでかなり新しくなっています。 'RectangleF rectf = new RectangleF(20,40,40,30);'書式を理解するためにも研究しています。 – walangala