Example #1
0
        private void _startConversionJob()
        {
            if (working)
            {
                return;
            }

            working = true;
            cancel  = false;

            buttonCONVERT.Visible = false;
            buttonCANCEL.Visible  = true;

            doubleBuffer1.Refresh();
            _outputList.Clear();
            YOffset = 0;
            _outputToInfo("Start Conversion:");
            _getExtension();
            _getPreviewSize();
            _allPages       = checkBoxPAGES.Checked;
            _pagesToConvert = new List <int>();
            if (!_allPages)
            {
                foreach (int p in _decodePageRange(textBoxPAGES.Text))
                {
                    _pagesToConvert.Add(p);
                }
            }

            try
            {
                _path       = fileFieldAndBrowser1.FileName;
                _dpi        = int.Parse(toolStripTextBoxWithLabelDPI.TextBoxText);
                _multiFiles = oneFilePerPageToolStripMenuItem.Checked;
                _overwrite  = overwriteToolStripMenuItem.Checked;

                RegistryAccess.SaveEntryValue_ToRegistry(_regDPI, _dpi);
                RegistryAccess.SaveEntryValue_ToRegistry(_regOVW, _overwrite);
                RegistryAccess.SaveEntryValue_ToRegistry(_regMulti, _multiFiles);
                RegistryAccess.SaveEntryValue_ToRegistry(_regAllPage, _allPages);
                RegistryAccess.SaveEntryValue_ToRegistry(_regRangePage, textBoxPAGES.Text);

                RegistryAccess.SaveEntryValue_ToRegistry(_regFormat, _imageExt);
                RegistryAccess.SaveEntryValue_ToRegistry(_regPreviewSize, _prevSizeText);
            }
            catch (Exception ex)
            {
                _outputToInfo("Error");
                _outputToInfo(ex.ToString());
                return;
            }


            worker         = new BackgroundWorker();
            worker.DoWork += (sender, args) =>
            {
                if (Directory.Exists(_path))
                {
                    string[] files = Directory.GetFiles(_path, "*.pdf");
                    foreach (string file in files)
                    {
                        _convert(file);
                    }
                }
                else
                {
                    _convert(_path);
                }
            };

            worker.RunWorkerCompleted += (sender, args) =>
            {
                if (cancel)
                {
                    _outputToInfo("Cancelled");
                    _outputToInfo();
                }
                else
                {
                    _outputToInfo("Done");
                    _outputToInfo();
                }

                doubleBuffer1.Refresh();

                buttonCONVERT.Visible = true;
                buttonCANCEL.Visible  = false;
                working = false;
            };

            worker.RunWorkerAsync(); // starts the background worker

            // execution continues here in parallel to the background worker
            // update messages
        }