Я создал изображение штрих-кода с помощью iTextSharp:
public static Image GetCodigoBarra(TipoCodigoBarra tipoCodigo, string valorAcodificar)
{
Barcode brCD;
switch (tipoCodigo)
{
case TipoCodigoBarra.CODE128: brCD = new Barcode128(); brCD.CodeType = Barcode.CODE128; break;
case TipoCodigoBarra.EAN13: brCD = new BarcodeEAN(); brCD.CodeType = Barcode.EAN13; break;
case TipoCodigoBarra.EAN8: brCD = new BarcodeEAN(); brCD.CodeType = Barcode.EAN8; break;
case TipoCodigoBarra.UPCA: brCD = new Barcode128(); brCD.CodeType = Barcode.UPCA; break;
case TipoCodigoBarra.UPCE: brCD = new Barcode128(); brCD.CodeType = Barcode.UPCE; break;
default: brCD = new Barcode128(); brCD.CodeType = Barcode.CODE128; break;
}
brCD.ChecksumText = true;
brCD.GenerateChecksum = true;
brCD.Code = valorAcodificar;
return brCD.CreateDrawingImage(System.Drawing.Color.Black, System.Drawing.Color.White);
}
Я вызываю этот метод следующим образом:
Image brCode = GetCodigoBarra(TipoCodigoBarra.CODE128, "10004523");
Я хочу напечатать это в PrintDocument
, используя:
e.Graphics.DrawImage(brCode, -100-brCode.Width*0.5f, -(PosicionY + altoArial * fuente18B.Size * 3));
но посмотрите, что я получаю вместо чистого штрих-кода (снимок экрана из полученного pdf):
Before I make DrawImage
to PrintDocument
I make a jpg copy of the image:
brCode.Save(@"C:\Users\account_name\Downloads\brcode.jpg");
и я получаю это изображение , что правильно:
введите описание изображения здесь
Что не так? Как избавиться от оттенков серого?