Пример #1
0
        private void OnPageTextRequested(object sender, PageTextRequestedEventArgs pageTextRequestedEventArgs)
        {
            var serverPath = HttpContext.Current.Server.MapPath(pageTextRequestedEventArgs.FilePath);

            if (File.Exists(serverPath))
            {
                using (var stream = File.OpenRead(serverPath))
                {
                    try
                    {
                        var decoder = RegisteredDecoders.GetDecoder(stream) as ITextFormatDecoder;
                        if (decoder != null)
                        {
                            using (var extractor = new SegmentedTextTranslator(decoder.GetTextDocument(stream)))
                            {
                                // for documents that have comlicated structure, i.e. consist from the isolated pieces of text, or table structure
                                // it's possible to configure nearby text blocks are combined into text segments(text containers that provide
                                // selection isolated from other document content)
                                extractor.RegionDetection = TextRegionDetectionMode.BlockDetection;

                                // each block boundaries inflated to one average character width and two average character height
                                // and all intersecting blocks are combined into single segment.
                                // Having vertical ratio bigger then horizontal behaves better on column-layout documents.
                                extractor.BlockDetectionDistance = new System.Drawing.SizeF(1, 2);
                                pageTextRequestedEventArgs.Page  = extractor.ExtractPageText(pageTextRequestedEventArgs.Index);
                            }
                        }
                    }
                    catch (ImageReadException imagingException)
                    {
                        Debug.WriteLine("Text extraction: image type is not recognized. {0}", imagingException);
                    }
                }
            }
        }
Пример #2
0
 protected override void OnPageTextRequested(PageTextRequestedEventArgs e)
 {
     base.OnPageTextRequested(e);
 }