示例#1
0
        static void Main(string[] args)
        {
            string filePath = @"c:\users\taylan\desktop\MgzSozlesme1.pdf";

            SautinSoft.PdfFocus f = new SautinSoft.PdfFocus();

            f.OpenPdf(filePath);

            if (f.PageCount > 0)
            {
                //Set image properties: Jpeg, 200 dpi

                f.ImageOptions.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;

                f.ImageOptions.Dpi = 200;

                //Save all PDF pages as page1.jpg, page2.jpg ... pageN.jpg

                //f.ToImage(@"c:\users\taylan\desktop\test2.jpg", 1);

                var image = f.ToDrawingImage(1);

                Bitmap bMap = new Bitmap(image);

                IBarcodeReader reader = new BarcodeReader();
                var            result = reader.Decode(bMap);

                DmtxImageDecoder decoder = new DmtxImageDecoder();

                List <string> oList = decoder.DecodeImage(bMap);

                int count = oList.Count;
            }
        }
示例#2
0
        private static void TestGS1EnDecoder()
        {
            string                  fileName1 = "gs1DataMatrix1.png";
            string                  fileName2 = "gs1DataMatrix2.gif";
            string                  gs1Code1  = "10AC3454G3";
            string                  gs1Code2  = "010761234567890017100503";
            DmtxImageEncoder        encoder   = new DmtxImageEncoder();
            DmtxImageEncoderOptions options   = new DmtxImageEncoderOptions();

            options.ModuleSize = 8;
            options.MarginSize = 30;
            options.BackColor  = Color.White;
            options.ForeColor  = Color.Black;
            options.Scheme     = DmtxScheme.DmtxSchemeAsciiGS1;
            Bitmap encodedBitmap1 = encoder.EncodeImage(gs1Code1, options);

            encodedBitmap1.Save(fileName1, ImageFormat.Png);
            Bitmap encodedBitmap2 = encoder.EncodeImage(gs1Code2, options);

            encodedBitmap2.Save(fileName2, ImageFormat.Gif);
            DmtxImageDecoder decoder       = new DmtxImageDecoder();
            List <string>    decodedCodes1 = decoder.DecodeImage(encodedBitmap1, 1, new TimeSpan(0, 0, 5));
            List <string>    decodedCodes2 = decoder.DecodeImage(encodedBitmap2, 1, new TimeSpan(0, 0, 5));

            if (decodedCodes1 != null && decodedCodes1.Count == 1)
            {
                Console.WriteLine("Encoded code 1: {0}, decoded code 1: {1}, codes are equal: {2}", gs1Code1, decodedCodes1[0], gs1Code1.Equals(decodedCodes1[0]));
            }
            if (decodedCodes2 != null && decodedCodes2.Count == 1)
            {
                Console.WriteLine("Encoded code 2: {0}, decoded code 2: {1}, codes are equal: {2}", gs1Code2, decodedCodes2[0], gs1Code2.Equals(decodedCodes2[0]));
            }
            Console.Read();
        }
示例#3
0
        /* Decodes given barcode Image:
         * Returns decoded string if barcode can be read,
         * Otherwise returns empty string.*/
        public string Barcode_decoder(Mat img)
        {
            DmtxImageDecoder decoder = new DmtxImageDecoder();
            var list = decoder.DecodeImage(img.Bitmap, 1, new TimeSpan(0, 0, 1));

            if (list.Count > 0)
            {
                return(list[0]);
            }
            else
            {
                return("");
            }
        }
示例#4
0
        public static string GetText(string dmFilePath)
        {
            DmtxImageDecoder decoder     = new DmtxImageDecoder();
            List <string>    dataExtract = decoder.DecodeImage((Bitmap)Bitmap.FromFile(dmFilePath), 1, new TimeSpan(0, 0, 3));
            String           output      = "";

            if (null != dataExtract && 0 < dataExtract.Count)
            {
                output = dataExtract[0];
            }
            else
            {
                output = "No Value extracted";
            }
            return(output);
        }
示例#5
0
        private static void TestMatrixEnDecoder()
        {
            string                  fileName = "encodedImg.png";
            DmtxImageEncoder        encoder  = new DmtxImageEncoder();
            DmtxImageEncoderOptions options  = new DmtxImageEncoderOptions();

            options.ModuleSize = 8;
            options.MarginSize = 4;
            options.BackColor  = Color.White;
            options.ForeColor  = Color.Green;
            Bitmap encodedBitmap = encoder.EncodeImage(testVal);

            encodedBitmap.Save(fileName, ImageFormat.Png);

            DmtxImageDecoder decoder = new DmtxImageDecoder();
            List <string>    codes   = decoder.DecodeImage((Bitmap)Bitmap.FromFile(fileName), 1, new TimeSpan(0, 0, 3));

            foreach (string code in codes)
            {
                Console.WriteLine("Decoded:\n" + code);
            }

            string     s  = encoder.EncodeSvgImage("DataMatrix.net rocks!!one!eleven!!111!eins!!!!", 7, 7, Color.FromArgb(100, 255, 0, 0), Color.Turquoise);
            TextWriter tw = new StreamWriter("encodedImg.svg");

            tw.Write(s);
            tw.Flush();
            tw.Close();

            TestRawEncoder("HELLO WORLD");
            new DmtxImageEncoder().EncodeImage("HELLO WORLD").Save("helloWorld.png");

            for (int i = 1; i < 10; i++)
            {
                var    encodedData = Guid.NewGuid().ToString();
                Bitmap source      = encoder.EncodeImage(encodedData);
                var    decodedData = decoder.DecodeImage(source);
                if (decodedData.Count != 1 || decodedData[0] != encodedData)
                {
                    throw new Exception("Encoding or decoding failed!");
                }
            }
        }
示例#6
0
        private string DecodeImage(String strImageFileNamePathInUse)
        {
            DmtxImageDecoder decoder = new DmtxImageDecoder();

            System.Drawing.Bitmap oBitmap = new System.Drawing.Bitmap(strImageFileNamePathInUse);
            List <string>         oList   = decoder.DecodeImage(oBitmap);

            StringBuilder sb = new StringBuilder();

            sb.Length = 0;
            foreach (string s in oList)
            {
                sb.Append(s);
            }

            String str_Text = sb.ToString();

            return(str_Text);
        }
示例#7
0
        static void readDataMatrix(Options options)
        {
            if (!File.Exists(options.inFile))
            {
                Console.WriteLine("The file to be read '{0}' does not exist", options.inFile);
                Console.Read();
                Environment.Exit(0);
            }

            DmtxImageDecoder dec = new DmtxImageDecoder();
            Bitmap bmp = new Bitmap(options.inFile);
            List<string> decodedData = new List<string>();
            // since the decoder may take quite a bit of time to decode
            // ensure we'll timeout instead of having the user wait forever
            decodedData = dec.DecodeImage(bmp, 1, TimeSpan.MaxValue);
            if (decodedData.Count == 0)
            {
                Console.WriteLine("Message could not be decoded");
                Console.Read();
                Environment.Exit(0);
            }

            Console.WriteLine("Message found:");
            foreach (string line in decodedData)
                Console.Write(line);

            if (!string.IsNullOrWhiteSpace(options.outFile))
            {
                try
                {
                    StreamWriter writer = new StreamWriter(options.outFile, false);
                    foreach (string line in decodedData)
                        writer.Write(line);
                    writer.Close();
                }
                catch (Exception ex)
                {
                    errorPrompt("When trying to write decoded message to file '{1}' an exception occurred:\n{1}", options.outFile, ex.Message);
                }
                Console.WriteLine("\nMessage contents are in {0}", options.outFile);
            }
        }
示例#8
0
        private static void TestMosaicEnDecoder()
        {
            string                  fileName = "encodedMosaicImg.png";
            DmtxImageEncoder        encoder  = new DmtxImageEncoder();
            DmtxImageEncoderOptions options  = new DmtxImageEncoderOptions();

            options.ModuleSize = 8;
            options.MarginSize = 4;
            Bitmap encodedBitmap = encoder.EncodeImageMosaic(testVal);

            encodedBitmap.Save(fileName, ImageFormat.Png);

            DmtxImageDecoder decoder = new DmtxImageDecoder();
            List <string>    codes   = decoder.DecodeImageMosaic((Bitmap)Bitmap.FromFile(fileName), 1, new TimeSpan(0, 0, 3));

            foreach (string code in codes)
            {
                Console.WriteLine("Decoded:\n" + code);
            }

            Console.Read();
        }
示例#9
0
        private void CreateScannedImagesList()
        {
            _scannedItems.Clear();

            var nameIndex = 0;

            if (rbtnTIFF.Checked)
            {
                var pageIndex = 0;
                var pageCount = int.Parse(upDownPageBreak.Value.ToString());
                var imageList = (List <Image>)null;

                switch (chkBarCode.Checked)
                {
                case true:
                    var dataMatrix = new DmtxImageDecoder();

                    for (int i = 0; i < _images.Count; i++)
                    {
                        if (pageIndex == 0)
                        {
                            imageList = new List <Image>();
                        }

                        using (var bmp = new Bitmap(_images[i]))
                        {
                            var decodeInfo = dataMatrix.DecodeImage(bmp);

                            if (decodeInfo.Count > 0 &&
                                String.Compare(decodeInfo[0], "DOKUFLEX") == 0)
                            {
                                var uploadDir = DFEnvironment.GetSpecialFolder(DFEnvironment.SpecialFolder.UploadDirectory);

                                if (!Directory.Exists(uploadDir))
                                {
                                    Directory.CreateDirectory(uploadDir);
                                }

                                var scannedItem = new ScannedImage();
                                scannedItem.Name     = String.Format("{0}_{1}", scannedItem.Name, ++nameIndex);
                                scannedItem.FileType = ".tiff";
                                scannedItem.Pages    = pageIndex;
                                scannedItem.Path     = String.Format("{0}\\{1}", uploadDir,
                                                                     scannedItem.Name + ".tiff");
                                scannedItem.Image = CreateMultipageTiff(imageList.ToArray(), scannedItem.Path);

                                if (_scanSetting != null)
                                {
                                    scannedItem.Routing.Assign(_scanSetting.Routing);
                                }

                                _scannedItems.Add(scannedItem);

                                pageIndex = 0;
                            }
                            else
                            {
                                imageList.Add(_images[i]);
                                pageIndex++;
                            }
                        }
                    }
                    break;

                default:
                    for (int i = 0; i < _images.Count; i++)
                    {
                        if (pageIndex == 0)
                        {
                            imageList = new List <Image>();
                        }

                        if (pageCount == 0)
                        {
                            imageList.Add(_images[i]);
                            pageIndex++;
                            continue;
                        }

                        if (pageIndex >= pageCount)
                        {
                            var uploadDir = DFEnvironment.GetSpecialFolder(DFEnvironment.SpecialFolder.UploadDirectory);

                            if (!Directory.Exists(uploadDir))
                            {
                                Directory.CreateDirectory(uploadDir);
                            }

                            var scannedItem = new ScannedImage();
                            scannedItem.Name     = String.Format("{0}_{1}", scannedItem.Name, ++nameIndex);
                            scannedItem.FileType = ".tiff";
                            scannedItem.Pages    = imageList.Count;
                            scannedItem.Path     = String.Format("{0}\\{1}", uploadDir,
                                                                 scannedItem.Name + ".tiff");
                            scannedItem.Image = CreateMultipageTiff(imageList.ToArray(), scannedItem.Path);

                            if (_scanSetting != null)
                            {
                                scannedItem.Routing.Assign(_scanSetting.Routing);
                            }

                            _scannedItems.Add(scannedItem);

                            pageIndex = 0;
                        }
                        else
                        {
                            imageList.Add(_images[i]);
                            pageIndex++;
                        }
                    }
                    break;
                }

                if (pageIndex > 0)
                {
                    var uploadDir = DFEnvironment.GetSpecialFolder(DFEnvironment.SpecialFolder.UploadDirectory);

                    if (!Directory.Exists(uploadDir))
                    {
                        Directory.CreateDirectory(uploadDir);
                    }

                    var scannedItem = new ScannedImage();
                    scannedItem.Name     = String.Format("{0}_{1}", scannedItem.Name, ++nameIndex);
                    scannedItem.FileType = ".tiff";
                    scannedItem.Pages    = imageList.Count;
                    scannedItem.Path     = String.Format("{0}\\{1}", uploadDir,
                                                         scannedItem.Name + ".tiff");
                    scannedItem.Image = CreateMultipageTiff(imageList.ToArray(), scannedItem.Path);

                    if (_scanSetting != null)
                    {
                        scannedItem.Routing.Assign(_scanSetting.Routing);
                    }

                    _scannedItems.Add(scannedItem);
                }
            }
            else
            {
                var fileType = String.Empty;

                if (rbtnBMP.Checked)
                {
                    fileType = ".bmp";
                }

                if (rbtnJPG.Checked)
                {
                    fileType = ".jpeg";
                }

                if (rbtnPNG.Checked)
                {
                    fileType = ".png";
                }

                for (int i = 0; i < _images.Count; i++)
                {
                    var scannedItem = new ScannedImage();
                    scannedItem.Name     = String.Format("{0}_{1}", scannedItem.Name, ++nameIndex);
                    scannedItem.Image    = _images[i];
                    scannedItem.FileType = fileType;

                    if (_scanSetting != null)
                    {
                        scannedItem.Routing.Assign(_scanSetting.Routing);
                    }

                    _scannedItems.Add(scannedItem);
                }
            }
        }