Пример #1
0
        /// <summary>
        ///     Encode the raw data using the JAN-13 algorithm.
        /// </summary>
        private string Encode_JAN13()
        {
            if (!Raw_Data.StartsWith("49"))
            {
                throw new Exception("EJAN13-1: Invalid Country Code for JAN13 (49 required)");
            }
            if (!Barcode.CheckNumericOnly(Raw_Data))
            {
                throw new Exception("EJAN13-2: Numeric Data Only");
            }

            var ean13 = new EAN13(Raw_Data);

            return(ean13.Encoded_Value);
        }
Пример #2
0
        /// <summary>
        ///     Encode the raw data using the Bookland/ISBN algorithm.
        /// </summary>
        private string Encode_ISBN_Bookland()
        {
            if (!Barcode.CheckNumericOnly(Raw_Data))
            {
                throw new Exception("EBOOKLANDISBN-1: Numeric Data Only");
            }

            var type = "UNKNOWN";

            if (Raw_Data.Length == 10 || Raw_Data.Length == 9)
            {
                if (Raw_Data.Length == 10)
                {
                    Raw_Data = Raw_Data.Remove(9, 1);
                }
                Raw_Data = "978" + Raw_Data;
                type     = "ISBN";
            }
            else if (Raw_Data.Length == 12 && Raw_Data.StartsWith("978"))
            {
                type = "BOOKLAND-NOCHECKDIGIT";
            }
            else if (Raw_Data.Length == 13 && Raw_Data.StartsWith("978"))
            {
                type     = "BOOKLAND-CHECKDIGIT";
                Raw_Data = Raw_Data.Remove(12, 1);
            }

            //check to see if its an unknown type
            if (type == "UNKNOWN")
            {
                throw new Exception(
                          "EBOOKLANDISBN-2: Invalid input.  Must start with 978 and be length must be 9, 10, 12, 13 characters.");
            }

            var ean13 = new EAN13(Raw_Data);

            return(ean13.Encoded_Value);
        }
Пример #3
0
        /// <summary>
        ///     Encodes the raw data into binary form representing bars and spaces.
        /// </summary>
        internal Image Encode()
        {
            var dtStartTime = DateTime.Now;

            //make sure there is something to encode
            if (string.IsNullOrEmpty(Raw_Data))
            {
                throw new Exception("EENCODE-1: Input data not allowed to be blank.");
            }

            if (EncodedType == TYPE.UNSPECIFIED)
            {
                throw new Exception("EENCODE-2: Symbology type not allowed to be unspecified.");
            }

            Encoded_Value = string.Empty;
            _Country_Assigning_Manufacturer_Code = "N/A";

            IBarcode ibarcode;

            switch (Encoded_Type)
            {
            case TYPE.UCC12:
            case TYPE.UPCA:     //Encode_UPCA();
                ibarcode = new UPCA(Raw_Data);
                break;

            case TYPE.UCC13:
            case TYPE.EAN13:     //Encode_EAN13();
                ibarcode = new EAN13(Raw_Data);
                break;

            case TYPE.Interleaved2of5:     //Encode_Interleaved2of5();
                ibarcode = new Interleaved2of5(Raw_Data);
                break;

            case TYPE.Industrial2of5:
            case TYPE.Standard2of5:     //Encode_Standard2of5();
                ibarcode = new Standard2of5(Raw_Data);
                break;

            case TYPE.LOGMARS:
            case TYPE.CODE39:     //Encode_Code39();
                ibarcode = new Code39(Raw_Data);
                break;

            case TYPE.CODE39Extended:
                ibarcode = new Code39(Raw_Data, true);
                break;

            case TYPE.Codabar:     //Encode_Codabar();
                ibarcode = new Codabar(Raw_Data);
                break;

            case TYPE.PostNet:     //Encode_PostNet();
                ibarcode = new Postnet(Raw_Data);
                break;

            case TYPE.ISBN:
            case TYPE.BOOKLAND:     //Encode_ISBN_Bookland();
                ibarcode = new ISBN(Raw_Data);
                break;

            case TYPE.JAN13:     //Encode_JAN13();
                ibarcode = new JAN13(Raw_Data);
                break;

            case TYPE.UPC_SUPPLEMENTAL_2DIGIT:     //Encode_UPCSupplemental_2();
                ibarcode = new UPCSupplement2(Raw_Data);
                break;

            case TYPE.MSI_Mod10:
            case TYPE.MSI_2Mod10:
            case TYPE.MSI_Mod11:
            case TYPE.MSI_Mod11_Mod10:
            case TYPE.Modified_Plessey:     //Encode_MSI();
                ibarcode = new MSI(Raw_Data, Encoded_Type);
                break;

            case TYPE.UPC_SUPPLEMENTAL_5DIGIT:     //Encode_UPCSupplemental_5();
                ibarcode = new UPCSupplement5(Raw_Data);
                break;

            case TYPE.UPCE:     //Encode_UPCE();
                ibarcode = new UPCE(Raw_Data);
                break;

            case TYPE.EAN8:     //Encode_EAN8();
                ibarcode = new EAN8(Raw_Data);
                break;

            case TYPE.USD8:
            case TYPE.CODE11:     //Encode_Code11();
                ibarcode = new Code11(Raw_Data);
                break;

            case TYPE.CODE128:     //Encode_Code128();
                ibarcode = new Code128(Raw_Data);
                break;

            case TYPE.CODE128A:
                ibarcode = new Code128(Raw_Data, Code128.TYPES.A);
                break;

            case TYPE.CODE128B:
                ibarcode = new Code128(Raw_Data, Code128.TYPES.B);
                break;

            case TYPE.CODE128C:
                ibarcode = new Code128(Raw_Data, Code128.TYPES.C);
                break;

            case TYPE.ITF14:
                ibarcode = new ITF14(Raw_Data);
                break;

            case TYPE.CODE93:
                ibarcode = new Code93(Raw_Data);
                break;

            default:
                throw new Exception("EENCODE-2: Unsupported encoding type specified.");
            }

            Encoded_Value  = ibarcode.Encoded_Value;
            Raw_Data       = ibarcode.RawData;
            Formatted_Data = ibarcode.FormattedData;
            _EncodingTime  = (DateTime.Now - dtStartTime).TotalMilliseconds;

            EncodedImage = Generate_Image();

            _XML = GetXML();

            return(EncodedImage);
        }