C#要用zxing生成PDF417条码,但是字符太多(54个19位条码)导致生成的条码极宽,无法打印,强行控制宽度又无法扫描,Poslabel生成的条码可以打印并扫描,怎么用C#做到同样的效果?
时间: 2024-04-17 17:23:03 浏览: 241
要在C#中生成可打印和可扫描的PDF417条码,并控制条码的宽度,可以尝试使用其他条码生成库来替代zxing。以下是使用Zint库生成PDF417条码的示例代码:
首先,您需要从NuGet包管理器中安装Zint库。在Visual Studio中,右键单击项目,选择"管理NuGet程序包",然后搜索并安装"ZintNet"包。
接下来,您可以使用以下代码生成PDF417条码:
using System;
using System.Drawing;
using System.IO;
using ZintNet;
namespace BarcodeGenerator
{
class Program
{
static void Main(string[] args)
{
string barcodeData = "Your barcode data"; // 条码数据
int barcodeWidth = 200; // 条码宽度(像素)
int barcodeHeight = 50; // 条码高度(像素)
BarcodePDF417 pdf417 = new BarcodePDF417();
pdf417.BarHeight = barcodeHeight;
pdf417.BarWidth = barcodeWidth / barcodeData.Length; // 控制每个字符的宽度
Bitmap barcodeImage = new Bitmap(barcodeWidth, barcodeHeight);
Graphics graphics = Graphics.FromImage(barcodeImage);
pdf417.Encode(barcodeData);
byte[] barcodeBytes = pdf417.GetImageData();
MemoryStream ms = new MemoryStream(barcodeBytes);
Image barcode = Image.FromStream(ms);
graphics.DrawImage(barcode, 0, 0);
string outputFilePath = "barcode.png"; // 输出文件路径
barcodeImage.Save(outputFilePath);
Console.WriteLine("Barcode generated and saved to " + outputFilePath);
}
}
}
请注意,您可能需要根据您的具体需求调整条码的宽度和高度以及其他属性。此示例仅提供了一个基本的生成和保存条码的框架,您可以根据自己的需求进行更多的定制。
希望这可以帮助到您!
相关推荐


















