Question

I have an array of type PictureBox. I want to fill it the List of string and then covert it to the Barcode. But I am uncle to convert the string to the PictureBox. Is there any step I can do to make them compatible?

System.Windows.Forms.PictureBox[] PictureBoxArray = new PictureBox[3];
List<string> serial = new List<string>;

public void ConvertToBarCode()
{
   BarcodeLib.TYPE barcodetype1 = BarcodeLib.TYPE.CODE39;
   BarcodeLib.Barcode bar1 = new BarcodeLib.Barcode();
   bar1.IncludeLabel = true;
   PictureBoxArray[0] = serial[0]; // Want to Convert String to PictureBox
   PictureBoxArray[0].Image = bar1.Encode(barcodetype1, SerialNumberList[0]);
}

I have filles the serial List with the string now just want the conversion.

Was it helpful?

Solution

enter image description here

you want like this.. right?? see this is the representaion of the this string "S1253551" in 3of9 and plain text and finally as image right??

public Image stringToImage(string inputString)
{ 
    string text = inputString.Trim();

    Bitmap bmp = new Bitmap(1, 1);

    //Set the font style of output image
    Font font = new Font("Free 3 of 9", 25, FontStyle.Regular, GraphicsUnit.Pixel);
    Font font2 = new Font("Arial", 15, FontStyle.Regular, GraphicsUnit.Pixel);

    Graphics graphics = Graphics.FromImage(bmp);

    int width = (int)graphics.MeasureString(text, font).Width;
    int height = (int)graphics.MeasureString(text, font).Height;

    int height2 = (int)graphics.MeasureString(text, font2).Height;

    bmp = new Bitmap(bmp, new Size(width, height+height2));
    graphics = Graphics.FromImage(bmp);



    //Specify the background color of the image
    graphics.Clear(Color.Cyan);
    graphics.SmoothingMode = SmoothingMode.AntiAlias;
    graphics.TextRenderingHint = TextRenderingHint.AntiAlias;



    //Specify the text, font, Text Color, X position and Y position of the image
    graphics.DrawString(text, font, new SolidBrush(Color.Black), 0, 0);
    graphics.DrawString(text, font2, new SolidBrush(Color.Black), 0, height);

    graphics.Flush();
    graphics.Dispose();

    //if you want to save the image  uncomment the below line.
    //bmp.Save(@"d:\myimage.jpg", ImageFormat.Jpeg);

    return bmp;
}

Remember you must have installed "free 3 of 9" font.

you pass the string "S1253551" and it generate the barcode and add the plain text at bottom and finally return it as image.

Its working code i have tried at my end. Enjoy. :)

Download the working code from here Download

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top