public void MG001(string name)
        {
            DirectoryInfo sourceDir = new DirectoryInfo("../../../../TestFiles/");
            FileInfo      fi        = new FileInfo(Path.Combine(sourceDir.FullName, name));

            MetricsGetterSettings settings = new MetricsGetterSettings()
            {
                IncludeTextInContentControls = false,
                IncludeXlsxTableCellData     = false,
                RetrieveNamespaceList        = true,
                RetrieveContentTypeList      = true,
            };

            var      extension = fi.Extension.ToLower();
            XElement metrics   = null;

            if (Util.IsWordprocessingML(extension))
            {
                WmlDocument wmlDocument = new WmlDocument(fi.FullName);
                metrics = MetricsGetter.GetDocxMetrics(wmlDocument, settings);
            }
            else if (Util.IsSpreadsheetML(extension))
            {
                SmlDocument smlDocument = new SmlDocument(fi.FullName);
                metrics = MetricsGetter.GetXlsxMetrics(smlDocument, settings);
            }
            else if (Util.IsPresentationML(extension))
            {
                PmlDocument pmlDocument = new PmlDocument(fi.FullName);
                metrics = MetricsGetter.GetPptxMetrics(pmlDocument, settings);
            }

            Assert.NotNull(metrics);
        }
        [InlineData("Styles.docx", true)]           // Style Hierarchy
        public void Word(string fileName, bool includeTextInControls)
        {
            var fi       = new FileInfo(GetFilePath(fileName));
            var settings = new MetricsGetterSettings {
                IncludeTextInContentControls = includeTextInControls
            };
            var metrics = MetricsGetter.GetMetrics(fi.FullName, settings);

            Log.WriteLine(metrics.ToString());
        }
        private static void Main()
        {
            var fi       = new FileInfo("../../ContentControls.docx");
            var settings = new MetricsGetterSettings
            {
                IncludeTextInContentControls = false
            };

            Console.WriteLine("============== No text from content controls ==============");
            Console.WriteLine(fi.FullName);
            Console.WriteLine(MetricsGetter.GetMetrics(fi.FullName, settings));
            Console.WriteLine();

            fi       = new FileInfo("../../ContentControls.docx");
            settings = new MetricsGetterSettings
            {
                IncludeTextInContentControls = true
            };
            Console.WriteLine("============== With text from content controls ==============");
            Console.WriteLine(fi.FullName);
            Console.WriteLine(MetricsGetter.GetMetrics(fi.FullName, settings));
            Console.WriteLine();

            fi       = new FileInfo("../../TrackedRevisions.docx");
            settings = new MetricsGetterSettings
            {
                IncludeTextInContentControls = true
            };
            Console.WriteLine("============== Tracked Revisions ==============");
            Console.WriteLine(fi.FullName);
            Console.WriteLine(MetricsGetter.GetMetrics(fi.FullName, settings));
            Console.WriteLine();

            fi       = new FileInfo("../../Styles.docx");
            settings = new MetricsGetterSettings
            {
                IncludeTextInContentControls = false
            };
            Console.WriteLine("============== Style Hierarchy ==============");
            Console.WriteLine(fi.FullName);
            Console.WriteLine(MetricsGetter.GetMetrics(fi.FullName, settings));
            Console.WriteLine();

            fi       = new FileInfo("../../Tables.xlsx");
            settings = new MetricsGetterSettings
            {
                IncludeTextInContentControls = false,
                IncludeXlsxTableCellData     = true
            };
            Console.WriteLine("============== Spreadsheet Tables ==============");
            Console.WriteLine(fi.FullName);
            Console.WriteLine(MetricsGetter.GetMetrics(fi.FullName, settings));
            Console.WriteLine();
        }
        public void Excel()
        {
            var fi       = new FileInfo(GetFilePath("Tables.xlsx"));
            var settings = new MetricsGetterSettings
            {
                IncludeTextInContentControls = false,
                IncludeXlsxTableCellData     = true
            };
            var metrics = MetricsGetter.GetMetrics(fi.FullName, settings);

            Log.WriteLine(metrics.ToString());
        }
Esempio n. 5
0
        public static DocxMetrics GetDocxMetrics(string fileName)
        {
            var wmlDoc   = new WmlDocument(fileName);
            var settings = new MetricsGetterSettings
            {
                IncludeTextInContentControls = false,
                IncludeXlsxTableCellData     = false
            };
            var metricsXml = MetricsGetter.GetDocxMetrics(wmlDoc, settings);
            var metrics    = new DocxMetrics
            {
                FileName = wmlDoc.FileName,

                StyleHierarchy      = GetXmlDocumentForMetrics(metricsXml, H.StyleHierarchy),
                ContentControls     = GetXmlDocumentForMetrics(metricsXml, H.Parts),
                TextBox             = GetIntForMetrics(metricsXml, H.TextBox),
                ContentControlCount = GetIntForMetrics(metricsXml, H.ContentControl),
                ComplexField        = GetIntForMetrics(metricsXml, H.ComplexField),
                SimpleField         = GetIntForMetrics(metricsXml, H.SimpleField),
                AltChunk            = GetIntForMetrics(metricsXml, H.AltChunk),
                Table                  = GetIntForMetrics(metricsXml, H.Table),
                Hyperlink              = GetIntForMetrics(metricsXml, H.Hyperlink),
                LegacyFrame            = GetIntForMetrics(metricsXml, H.LegacyFrame),
                ActiveX                = GetIntForMetrics(metricsXml, H.ActiveX),
                SubDocument            = GetIntForMetrics(metricsXml, H.SubDocument),
                ReferenceToNullImage   = GetIntForMetrics(metricsXml, H.ReferenceToNullImage),
                ElementCount           = GetIntForMetrics(metricsXml, H.ElementCount),
                AverageParagraphLength = GetIntForMetrics(metricsXml, H.AverageParagraphLength),
                RunCount               = GetIntForMetrics(metricsXml, H.RunCount),
                ZeroLengthText         = GetIntForMetrics(metricsXml, H.ZeroLengthText),
                MultiFontRun           = GetIntForMetrics(metricsXml, H.MultiFontRun),
                AsciiCharCount         = GetIntForMetrics(metricsXml, H.AsciiCharCount),
                CSCharCount            = GetIntForMetrics(metricsXml, H.CSCharCount),
                EastAsiaCharCount      = GetIntForMetrics(metricsXml, H.EastAsiaCharCount),
                HAnsiCharCount         = GetIntForMetrics(metricsXml, H.HAnsiCharCount),
                AsciiRunCount          = GetIntForMetrics(metricsXml, H.AsciiRunCount),
                CSRunCount             = GetIntForMetrics(metricsXml, H.CSRunCount),
                EastAsiaRunCount       = GetIntForMetrics(metricsXml, H.EastAsiaRunCount),
                HAnsiRunCount          = GetIntForMetrics(metricsXml, H.HAnsiRunCount),
                RevisionTracking       = GetBoolForMetrics(metricsXml, H.RevisionTracking),
                EmbeddedXlsx           = GetBoolForMetrics(metricsXml, H.EmbeddedXlsx),
                InvalidSaveThroughXslt = GetBoolForMetrics(metricsXml, H.InvalidSaveThroughXslt),
                TrackRevisionsEnabled  = GetBoolForMetrics(metricsXml, H.TrackRevisionsEnabled),
                DocumentProtection     = GetBoolForMetrics(metricsXml, H.DocumentProtection),
                Valid                  = GetBoolForMetrics(metricsXml, H.Valid),
                Languages              = GetStringForMetrics(metricsXml, H.Languages),
                NumberingFormatList    = GetStringForMetrics(metricsXml, H.NumberingFormatList)
            };

            return(metrics);
        }
        public static DocxMetrics GetDocxMetrics(string fileName)
        {
            WmlDocument           wmlDoc   = new WmlDocument(fileName);
            MetricsGetterSettings settings = new MetricsGetterSettings();

            settings.IncludeTextInContentControls = false;
            settings.IncludeXlsxTableCellData     = false;
            var         metricsXml = MetricsGetter.GetDocxMetrics(wmlDoc, settings);
            DocxMetrics metrics    = new DocxMetrics();

            metrics.FileName = wmlDoc.FileName;

            metrics.StyleHierarchy      = GetXmlDocumentForMetrics(metricsXml, H.StyleHierarchy);
            metrics.ContentControls     = GetXmlDocumentForMetrics(metricsXml, H.Parts);
            metrics.TextBox             = GetIntForMetrics(metricsXml, H.TextBox);
            metrics.ContentControlCount = GetIntForMetrics(metricsXml, H.ContentControl);
            metrics.ComplexField        = GetIntForMetrics(metricsXml, H.ComplexField);
            metrics.SimpleField         = GetIntForMetrics(metricsXml, H.SimpleField);
            metrics.AltChunk            = GetIntForMetrics(metricsXml, H.AltChunk);
            metrics.Table                  = GetIntForMetrics(metricsXml, H.Table);
            metrics.Hyperlink              = GetIntForMetrics(metricsXml, H.Hyperlink);
            metrics.LegacyFrame            = GetIntForMetrics(metricsXml, H.LegacyFrame);
            metrics.ActiveX                = GetIntForMetrics(metricsXml, H.ActiveX);
            metrics.SubDocument            = GetIntForMetrics(metricsXml, H.SubDocument);
            metrics.ReferenceToNullImage   = GetIntForMetrics(metricsXml, H.ReferenceToNullImage);
            metrics.ElementCount           = GetIntForMetrics(metricsXml, H.ElementCount);
            metrics.AverageParagraphLength = GetIntForMetrics(metricsXml, H.AverageParagraphLength);
            metrics.RunCount               = GetIntForMetrics(metricsXml, H.RunCount);
            metrics.ZeroLengthText         = GetIntForMetrics(metricsXml, H.ZeroLengthText);
            metrics.MultiFontRun           = GetIntForMetrics(metricsXml, H.MultiFontRun);
            metrics.AsciiCharCount         = GetIntForMetrics(metricsXml, H.AsciiCharCount);
            metrics.CSCharCount            = GetIntForMetrics(metricsXml, H.CSCharCount);
            metrics.EastAsiaCharCount      = GetIntForMetrics(metricsXml, H.EastAsiaCharCount);
            metrics.HAnsiCharCount         = GetIntForMetrics(metricsXml, H.HAnsiCharCount);
            metrics.AsciiRunCount          = GetIntForMetrics(metricsXml, H.AsciiRunCount);
            metrics.CSRunCount             = GetIntForMetrics(metricsXml, H.CSRunCount);
            metrics.EastAsiaRunCount       = GetIntForMetrics(metricsXml, H.EastAsiaRunCount);
            metrics.HAnsiRunCount          = GetIntForMetrics(metricsXml, H.HAnsiRunCount);
            metrics.RevisionTracking       = GetBoolForMetrics(metricsXml, H.RevisionTracking);
            metrics.EmbeddedXlsx           = GetBoolForMetrics(metricsXml, H.EmbeddedXlsx);
            metrics.InvalidSaveThroughXslt = GetBoolForMetrics(metricsXml, H.InvalidSaveThroughXslt);
            metrics.TrackRevisionsEnabled  = GetBoolForMetrics(metricsXml, H.TrackRevisionsEnabled);
            metrics.DocumentProtection     = GetBoolForMetrics(metricsXml, H.DocumentProtection);
            metrics.Valid                  = GetBoolForMetrics(metricsXml, H.Valid);
            metrics.Languages              = GetStringForMetrics(metricsXml, H.Languages);
            metrics.NumberingFormatList    = GetStringForMetrics(metricsXml, H.NumberingFormatList);

            return(metrics);
        }