在itextsharp 5.5.4 .net中使用CODE128_UCC时出现.are.illegal.characters.for.barcode.128异常

时间:2014-12-19 21:45:38

标签: itextsharp itext

尝试创建GS1-128条形码时遇到以下异常:there.are.illegal.characters.for.barcode.128.in.1

        iTextSharp.text.pdf.Barcode barcode = null;
        barcode = new Barcode128();
        barcode.CodeType = iTextSharp.text.pdf.Barcode.CODE128_UCC;
        barcode.GenerateChecksum = true;
        barcode.Code = code;
        using (var image = barcode.CreateDrawingImage(Color.Black, Color.White))

2 个答案:

答案 0 :(得分:1)

在下拉源之后,看起来库中可能存在调用GetRawText的代码中的错误。它会传递CodeSet Auto,它会使方法中的断言失败。我确定以下是可接受的解决方法:

        iTextSharp.text.pdf.Barcode barcode = null;
        barcode = new Barcode128();
        barcode.CodeType = iTextSharp.text.pdf.Barcode.CODE128_RAW;
        barcode.GenerateChecksum = true;
        barcode.Code = Barcode128.GetRawText(code, true, Barcode128.Barcode128CodeSet.C);
        using (var image = barcode.CreateDrawingImage(Color.Black, Color.White))

答案 1 :(得分:0)

code.Normalize(NormalizationForm.FormKC)

为我工作。试试这个。