Esempio n. 1
0
        /* ----------------------------------------------------------------- */
        ///
        /// ExtractImages
        ///
        /// <summary>
        /// Extracts images from the specified PDF document.
        /// </summary>
        ///
        /* ----------------------------------------------------------------- */
        private void ExtractImages(DocumentReader src, IProgress <ProgressMessage <string> > progress)
        {
            var count = src.Pages.Count();
            var name  = IO.Get(Source).BaseName;

            for (var i = 0; i < count; ++i)
            {
                _cts.Token.ThrowIfCancellationRequested();

                var pagenum = i + 1;
                progress.Report(Create(
                                    (int)(i / (double)count * 100.0),
                                    string.Format(Properties.Resources.MessageProcess, name, pagenum, count)
                                    ));

                var images = src.GetEmbeddedImages(pagenum);
                _cts.Token.ThrowIfCancellationRequested();

                lock (_lock)
                {
                    foreach (var image in images)
                    {
                        _cts.Token.ThrowIfCancellationRequested();
                        _core.Add(image);
                    }
                }
            }
        }