Exemple #1
0
        static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
            if (CultureInfo.InstalledUICulture.TwoLetterISOLanguageName == "ja")
            {
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("ja");
            }

            //Definition of application command arguments
            var app = new CommandLineApplication(throwOnUnexpectedArg: false);

            app.Name        = "OfficeExtractText.exe";
            app.Description = Resource.APP_DESCRIPTION;
            var targetPathArgument = app.Argument("<target file or directory>", Resource.TARGET_PATH_ARGUMENT);
            var outputOption       = app.Option("-o|--output", Resource.OUTPUT_OPTION, CommandOptionType.SingleValue);
            var subDirOption       = app.Option("-s|--subdir", Resource.SUBDIR_OPTION, CommandOptionType.NoValue);
            var excelOption        = app.Option("-e|--excel", Resource.EXCEL_OPTION, CommandOptionType.NoValue);
            var wordOption         = app.Option("-w|--word", Resource.WORD_OPTION, CommandOptionType.NoValue);
            var powerPointOption   = app.Option("-p|--powerpoint", Resource.POWERPOINT_OPTION, CommandOptionType.NoValue);
            var nologOption        = app.Option("--no-log", Resource.NOLOG_OPTION, CommandOptionType.NoValue);

            app.OnExecute(() =>
            {
                //Options setting.
                if (targetPathArgument.Value == null || !outputOption.HasValue())
                {
                    app.ShowHelp();
                    return(3);
                }
                //Init logger.
                ConsoleLogger.InitLogger(!nologOption.HasValue(), !nologOption.HasValue(), true);

                //Init options.
                var extractExcel      = excelOption.HasValue();
                var extractWord       = wordOption.HasValue();
                var extractPowerPoint = powerPointOption.HasValue();
                if (!extractExcel && !extractWord && !extractPowerPoint)
                {
                    extractExcel      = true;
                    extractWord       = true;
                    extractPowerPoint = true;
                }
                var options               = new OfficeTextExporterOption();
                options.ExtractExcel      = extractExcel;
                options.ExtractWord       = extractWord;
                options.ExtractPowerPoint = extractPowerPoint;
                options.ExtractSubDir     = subDirOption.HasValue();
                options.OutputDir         = Path.GetFullPath(outputOption.Value());
                try
                {
                    //Execute exporter.
                    var targetPath = Path.GetFullPath(targetPathArgument.Value);
                    ConsoleLogger.WriteLog(String.Format(Resource.EXTRACTING_STARTED_PATH_ARG0, targetPath));
                    var exporter = new OfficeTextExporter(targetPath, options);
                    exporter.Execute();
                    if (exporter.HasWarning())
                    {
                        ConsoleLogger.WriteLog(Resource.EXTRACTING_FINISHED_WITH_WARNING);
                        return(2);
                    }
                    else
                    {
                        ConsoleLogger.WriteLog(Resource.EXTRACTING_FINISHED_SUCCESSFULLY);
                        return(0);
                    }
                }
                catch (ApplicationException e)
                {
                    ConsoleLogger.WriteError(String.Format(Resource.EXTRACTING_FINISHED_WITH_ERROR_DETAILS_ARG0, e.Message));
                    return(1);
                }
                catch (Exception e)
                {
                    ConsoleLogger.WriteError(String.Format(Resource.EXTRACTING_FINISHED_WITH_ERROR_DETAILS_ARG0, e.ToString()));
                    return(1);
                }
            });

            try
            {
                app.Execute(args);
            }
            catch (CommandParsingException)
            {
                app.ShowHelp();
                Environment.Exit(2);
            }
        }
 public OfficeTextExporter(string targetPath, OfficeTextExporterOption options)
 {
     this.targetPath = targetPath;
     this.options    = options;
 }