public class Barcode
{
public Bitmap CreateBarcode(string data)
{
string barcodeData = "*" + data + "*";
Bitmap barcode = new Bitmap(1, 1);
// less than size 40, my barcode reader can not read it.
Font threeOfNine = new Font("Free 3 of 9", 40,
System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point);
Font arial = new Font("Arial", 15,
System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point);
Graphics graphics = Graphics.FromImage(barcode);
SizeF dataSize = graphics.MeasureString(barcodeData, threeOfNine);
dataSize.Height = 70;
barcode = new Bitmap(barcode, dataSize.ToSize());
graphics = Graphics.FromImage(barcode);
graphics.Clear(Color.White);
graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
graphics.DrawString(barcodeData, threeOfNine, new SolidBrush(Color.Black), 0, 0);
graphics.DrawString(data, arial, new SolidBrush(Color.Black), 50, 40);
graphics.Flush();
threeOfNine.Dispose();
graphics.Dispose();
return barcode;
}
}
上記のコードを使用して、Free 3 of 9を使用してバーコードを生成していますが、サイズが40未満の場合、バーコードリーダーはそのコードを読み取ることができません。サイズ40は私のアプリケーションには大きすぎますが、バーコードサイズを小さくする方法はありますか?
Font threeOfNine = new Font("Free 3 of 9", 30,
System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point);