我需要一个免费 C#库,它允许创建PDF-417条形码。然而,我遇到的所有网站都是商业产品。你能推荐一个免费的图书馆吗?
答案 0 :(得分:6)
您还可以使用ZXing.net nuget包,它将更简单易用。
private byte[] GenerateBarCodeZXing(string data)
{
var writer = new BarcodeWriter
{
Format = BarcodeFormat.PDF_417,
Options = new EncodingOptions { Width = 200, Height = 50 } //optional
};
var imgBitmap = writer.Write(data);
using (var stream = new MemoryStream())
{
imgBitmap.Save(stream, ImageFormat.Png);
return stream.ToArray();
}
}
答案 1 :(得分:-1)
您可以使用SharpPDF417 nuget包。它是完全免费的。但是我们需要编写一些包装代码来获取生成的byte []或条形码流。
private byte[] GenerateBarCode(string data)
{
Pdf417Generator gen = new Pdf417Generator(data);
int bw = 2;
int bh = 2;
var barcode = gen.Encode();
var width = barcode.Columns * bh;
var height = barcode.Rows * bh;
Byte[] imgData;
using (MemoryStream stream = new MemoryStream())
{
using (System.Drawing.Image bmp = new Bitmap(width, height))
{
using (Graphics graphics = Graphics.FromImage(bmp))
{
int y = 0;
for (int r = 0; r < barcode.Rows; ++r)
{
int x = 0;
for (int c = 0; c < barcode.Columns; ++c)
{
if (barcode.RawData[r][c] == 1)
{
graphics.FillRectangle(Brushes.Black, x, y, bw, bh);
}
x += bw;
}
y += bh;
}
}
bmp.Save(stream, ImageFormat.Png);
}
imgData = stream.ToArray();
}
return imgData;
}
您可以使用我的上述方法获取生成条形码的字节数组。