Ejemplo n.º 1
0
        private string Extract(Func <Metadata, InputStream> streamFactory)
        {
            try
            {
                Logger.Debug("Autodetect parser");
                var autoDetectParser = new AutoDetectParser();
                Logger.Debug("MetaData");
                var metadata = new Metadata();
                Logger.Debug("ToXMLContentHandler");
                var handler = new ToXMLContentHandler();

                Logger.Debug("Reading stream");
                using (InputStream inputStream = streamFactory(metadata))
                {
                    try
                    {
                        autoDetectParser.parse(
                            inputStream,
                            handler,
                            metadata
                            );
                    }
                    finally
                    {
                        Logger.Debug("Closing Stream after auto-detect parser");
                        inputStream.close();
                    }
                }

                var content = handler.ToString();
                return(content);
            }
            catch (System.Exception ex)
            {
                Logger.ErrorFormat(ex, "Extract error: {0}", ex.Message);
                if (ex.InnerException != null)
                {
                    Logger.ErrorFormat(ex.InnerException, "Extract inner error: {0}", ex.InnerException.Message);
                }

                throw new TextExtractionException("Extraction failed.", ex);
            }
        }
        private string Extract(Func<Metadata, InputStream> streamFactory)
        {
            try
            {
                Logger.Debug("Autodetect parser");
                var autoDetectParser = new AutoDetectParser();
                Logger.Debug("MetaData");
                var metadata = new Metadata();
                Logger.Debug("ToXMLContentHandler");
                var handler = new ToXMLContentHandler();

                Logger.Debug("Reading stream");
                using (InputStream inputStream = streamFactory(metadata))
                {
                    try
                    {
                        autoDetectParser.parse(
                            inputStream,
                            handler,
                            metadata
                            );
                    }
                    finally
                    {
                        Logger.Debug("Closing Stream after auto-detect parser");
                        inputStream.close();
                    }
                }

                var content = handler.ToString();
                return content;
            }
            catch (System.Exception ex)
            {
                Logger.ErrorFormat(ex,"Extract {0}",ex.Message);

                throw new TextExtractionException("Extraction failed.", ex);
            }
        }