コード例 #1
0
ファイル: PDF417Encoder.cs プロジェクト: evi1m3/BarCode.Xnet
        public override CodeData         CreateCodeData(Payload xPayload, CodeOptions xOptions)
        {
            Pdf417CodeOptions xOpt = xOptions as Pdf417CodeOptions;

            //
            if (xOpt == null)
            {
                xOpt = new Pdf417CodeOptions();
            }

            //
            int          width     = 1024;
            int          height    = 1024;
            PDF417Writer _bcWriter = new PDF417Writer();
            Dictionary <EncodeHintType, object> Hints = new Dictionary <EncodeHintType, object>();

            Hints[EncodeHintType.WIDTH]  = width;
            Hints[EncodeHintType.HEIGHT] = height;

            Hints[EncodeHintType.MARGIN]            = 0;
            Hints[EncodeHintType.PDF417_COMPACTION] = (ZXing.PDF417.Internal.Compaction)(int) xOpt.m_eCompactionMode;
            Hints[EncodeHintType.ERROR_CORRECTION]  = (ZXing.PDF417.Internal.PDF417ErrorCorrectionLevel)(xOpt.ErrorCorrm_iectionLevel);
            Hints[EncodeHintType.PDF417_DIMENSIONS] = new ZXing.PDF417.Internal.Dimensions(xOpt.m_iDataColumns, xOpt.m_iDataColumns, xOpt.m_iDataRows, 100);

            if (xOpt.m_bMacroPDF)
            {
                Hints[EncodeHintType.PDF417_MACROENABLE]       = true;
                Hints[EncodeHintType.PDF417_MACROFileID]       = xOpt.m_sMacroPDFFileID;
                Hints[EncodeHintType.PDF417_MACROSegmentIndex] = xOpt.m_iMacroPDFSegmentIdx;
                Hints[EncodeHintType.PDF417_MACROSegmentCount] = xOpt.m_iMacroPDFSegmentCount;
            }

            Hints[EncodeHintType.PDF417_Y2XRatio] = xOpt.m_fY2XRatio;

            BitMatrix xData = _bcWriter.encode(xPayload.ToString(), width, height, Hints);
            //
            CodeData xResData = new CodeData(xData.Width, xData.Height);

            //
            for (int y = 0; y < xData.Height; y++)
            {
                for (int x = 0; x < xData.Width; x++)
                {
                    xResData.ModuleMatrix[y][x] = xData[x, y];
                }
            }
            //
            return(xResData);
        }
コード例 #2
0
ファイル: MultiFormatWriter.cs プロジェクト: smart-make/zxing
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public com.google.zxing.common.BitMatrix encode(String contents, BarcodeFormat format, int width, int height, java.util.Map<EncodeHintType,?> hints) throws WriterException
        public BitMatrix encode(string contents, BarcodeFormat format, int width, int height, IDictionary <EncodeHintType, object> hints)
        {
            Writer writer;

            switch (format)
            {
            case com.google.zxing.BarcodeFormat.EAN_8:
                writer = new EAN8Writer();
                break;

            case com.google.zxing.BarcodeFormat.EAN_13:
                writer = new EAN13Writer();
                break;

            case com.google.zxing.BarcodeFormat.UPC_A:
                writer = new UPCAWriter();
                break;

            case com.google.zxing.BarcodeFormat.QR_CODE:
                writer = new QRCodeWriter();
                break;

            case com.google.zxing.BarcodeFormat.CODE_39:
                writer = new Code39Writer();
                break;

            case com.google.zxing.BarcodeFormat.CODE_128:
                writer = new Code128Writer();
                break;

            case com.google.zxing.BarcodeFormat.ITF:
                writer = new ITFWriter();
                break;

            case com.google.zxing.BarcodeFormat.PDF_417:
                writer = new PDF417Writer();
                break;

            case com.google.zxing.BarcodeFormat.CODABAR:
                writer = new CodaBarWriter();
                break;

            default:
                throw new System.ArgumentException("No encoder available for format " + format);
            }
            return(writer.encode(contents, format, width, height, hints));
        }
コード例 #3
0
        public void testDataMatrixImageWriter()
        {
            var hints = new PDF417EncodingOptions
            {
                Margin = 0
            };
            const int size   = 64;
            var       writer = new PDF417Writer();
            var       matrix = writer.encode("Hello Google", BarcodeFormat.PDF_417, size, size, hints.Hints);

            Assert.IsNotNull(matrix);
            var expected =
                "X X X X X X X X   X   X   X       X X X X   X   X   X X X X         X X   X   X           X X         X X X X   X X     X     X X X     X X   X           X       X X     X X X X X   X   X   X X X X X     X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X   X   X   X X X X         X X   X   X           X X         X X X X   X X     X     X X X     X X   X           X       X X     X X X X X   X   X   X X X X X     X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X   X   X   X X X X         X X   X   X           X X         X X X X   X X     X     X X X     X X   X           X       X X     X X X X X   X   X   X X X X X     X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X   X   X   X X X X         X X   X   X           X X         X X X X   X X     X     X X X     X X   X           X       X X     X X X X X   X   X   X X X X X     X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X   X   X         X         X   X X     X     X X X X X X     X X X           X   X X       X   X X X   X           X X     X     X X X X X X   X   X   X X X       X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X   X   X         X         X   X X     X     X X X X X X     X X X           X   X X       X   X X X   X           X X     X     X X X X X X   X   X   X X X       X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X   X   X         X         X   X X     X     X X X X X X     X X X           X   X X       X   X X X   X           X X     X     X X X X X X   X   X   X X X       X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X   X   X         X         X   X X     X     X X X X X X     X X X           X   X X       X   X X X   X           X X     X     X X X X X X   X   X   X X X       X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X   X   X     X X X X             X   X X X       X       X X       X     X X   X X     X X X X       X X       X X X X X     X     X   X   X   X         X X X X         X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X   X   X     X X X X             X   X X X       X       X X       X     X X   X X     X X X X       X X       X X X X X     X     X   X   X   X         X X X X         X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X   X   X     X X X X             X   X X X       X       X X       X     X X   X X     X X X X       X X       X X X X X     X     X   X   X   X         X X X X         X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X   X   X     X X X X             X   X X X       X       X X       X     X X   X X     X X X X       X X       X X X X X     X     X   X   X   X         X X X X         X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X   X   X X X X     X X X X       X         X X       X X     X     X   X     X X X X       X X X X   X       X X       X X         X   X X   X   X X X X     X X X X X   X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X   X   X X X X     X X X X       X         X X       X X     X     X   X     X X X X       X X X X   X       X X       X X         X   X X   X   X X X X     X X X X X   X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X   X   X X X X     X X X X       X         X X       X X     X     X   X     X X X X       X X X X   X       X X       X X         X   X X   X   X X X X     X X X X X   X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X   X   X X X X     X X X X       X         X X       X X     X     X   X     X X X X       X X X X   X       X X       X X         X   X X   X   X X X X     X X X X X   X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X   X   X X X           X       X X     X       X X X     X       X X X X X X   X X   X     X X     X   X X X   X     X X X X X       X X X   X   X X X     X X         X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X   X   X X X           X       X X     X       X X X     X       X X X X X X   X X   X     X X     X   X X X   X     X X X X X       X X X   X   X X X     X X         X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X   X   X X X           X       X X     X       X X X     X       X X X X X X   X X   X     X X     X   X X X   X     X X X X X       X X X   X   X X X     X X         X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X   X   X X X           X       X X     X       X X X     X       X X X X X X   X X   X     X X     X   X X X   X     X X X X X       X X X   X   X X X     X X         X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X X   X   X X X X   X X     X           X   X       X X X X   X       X   X         X X X X     X           X X X   X       X X   X X X X   X   X X X X X   X X     X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X X   X   X X X X   X X     X           X   X       X X X X   X       X   X         X X X X     X           X X X   X       X X   X X X X   X   X X X X X   X X     X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X X   X   X X X X   X X     X           X   X       X X X X   X       X   X         X X X X     X           X X X   X       X X   X X X X   X   X X X X X   X X     X X X X X X X   X       X   X     X \r\n" +
                "X X X X X X X X   X   X   X       X X X X X   X   X X X X   X X     X           X   X       X X X X   X       X   X         X X X X     X           X X X   X       X X   X X X X   X   X X X X X   X X     X X X X X X X   X       X   X     X \r\n";

            Assert.AreEqual(expected, matrix.ToString());
        }
コード例 #4
0
        public void TestMacroPdfCreation()
        {
            List <Result> results = new List <Result>();

            var writer = new BarcodeWriter()
            {
                Format  = BarcodeFormat.PDF_417,
                Options = new PDF417EncodingOptions
                {
                    Width           = 300,
                    Height          = 100,
                    ErrorCorrection = PDF417ErrorCorrectionLevel.L5,
                    Compact         = false,
                    Margin          = 1
                }
            };

            writer.Options.Hints.Add(EncodeHintType.PDF417_MACRO_META_DATA, new PDF417MacroMetadata()
            {
                SegmentIndex = 0,
                SegmentCount = 2,
                FileId       = "HELLO.WORLD",
                FileName     = "Bar.code",
                Sender       = "From",
                Addressee    = "To",
                FileSize     = 9001,
                Checksum     = 300,
                Timestamp    = (DateTime.UtcNow.Ticks - new DateTime(1970, 1, 1).Ticks) / TimeSpan.TicksPerSecond
            });

            var reader = new BarcodeReader
            {
                Options =
                {
                    PureBarcode     = true,
                    PossibleFormats = new List <BarcodeFormat> {
                        BarcodeFormat.PDF_417
                    },
                    TryHarder       = true,
                    //ReturnCodabarStartEnd = true
                }
            };

            var matrix1 = new PDF417Writer().encode("Hello", BarcodeFormat.PDF_417, writer.Options.Width, writer.Options.Height, writer.Options.Hints);

            // Barcode 1 of 2
            using (Bitmap barcodeImg = writer.Write(matrix1))
            {
                var result = reader.Decode(barcodeImg);
                results.Add(result);
            }

            writer.Options.Hints[EncodeHintType.PDF417_MACRO_META_DATA] = new PDF417MacroMetadata()
            {
                SegmentIndex = 1,
                SegmentCount = 2,
                FileId       = "HELLO.WORLD"
            };

            var matrix2 = new PDF417Writer().encode(" World", BarcodeFormat.PDF_417, writer.Options.Width, writer.Options.Height, writer.Options.Hints);

            // Barcode 2 of 2
            using (Bitmap barcodeImg = writer.Write(matrix2))
            {
                var result = reader.Decode(barcodeImg);
                results.Add(result);
            }

            Assert.IsTrue(
                (
                    from r in results
                    where r != null &&
                    r.ResultMetadata.ContainsKey(ResultMetadataType.PDF417_EXTRA_METADATA) == true &&
                    ((PDF417ResultMetadata)r.ResultMetadata[ResultMetadataType.PDF417_EXTRA_METADATA]).FileId == "HELLO.WORLD"
                    select r
                ).Count() == 2
                );
        }