public void Misc()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.BalanceSingleByteDoubleByteWidth);
            Assert.AreEqual(false, compatibilityOptions.ConvMailMergeEsc);
            Assert.AreEqual(false, compatibilityOptions.DoNotExpandShiftReturn);
            Assert.AreEqual(false, compatibilityOptions.DoNotLeaveBackslashAlone);
            Assert.AreEqual(false, compatibilityOptions.DoNotSuppressParagraphBorders);
            Assert.AreEqual(true, compatibilityOptions.DoNotUseIndentAsNumberingTabStop);
            Assert.AreEqual(false, compatibilityOptions.PrintBodyTextBeforeHeader);
            Assert.AreEqual(false, compatibilityOptions.PrintColBlack);
            Assert.AreEqual(true, compatibilityOptions.SelectFldWithFirstOrLastChar);
            Assert.AreEqual(false, compatibilityOptions.SubFontBySize);
            Assert.AreEqual(false, compatibilityOptions.SwapBordersFacingPgs);
            Assert.AreEqual(false, compatibilityOptions.TransparentMetafiles);
            Assert.AreEqual(true, compatibilityOptions.UseAnsiKerningPairs);
            Assert.AreEqual(false, compatibilityOptions.UseFELayout);
            Assert.AreEqual(false, compatibilityOptions.UsePrinterMetrics);

            // These options will become available in File > Options > Advanced > Compatibility Options in the output document
            doc.Save(ArtifactsDir + "CompatibilityOptions.Misc.docx");
        }
        public void Spacing()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.AutoSpaceLikeWord95);
            Assert.AreEqual(true, compatibilityOptions.DisplayHangulFixedWidth);
            Assert.AreEqual(false, compatibilityOptions.NoExtraLineSpacing);
            Assert.AreEqual(false, compatibilityOptions.NoLeading);
            Assert.AreEqual(false, compatibilityOptions.NoSpaceRaiseLower);
            Assert.AreEqual(false, compatibilityOptions.SpaceForUL);
            Assert.AreEqual(false, compatibilityOptions.SpacingInWholePoints);
            Assert.AreEqual(false, compatibilityOptions.SuppressBottomSpacing);
            Assert.AreEqual(false, compatibilityOptions.SuppressSpBfAfterPgBrk);
            Assert.AreEqual(false, compatibilityOptions.SuppressSpacingAtTopOfPage);
            Assert.AreEqual(false, compatibilityOptions.SuppressTopSpacing);
            Assert.AreEqual(false, compatibilityOptions.UlTrailSpace);

            // In the output document, these settings can be accessed in Microsoft Word via
            // File -> Options -> Advanced -> Compatibility options for...
            doc.Save(ArtifactsDir + "CompatibilityOptions.Spacing.docx");
        }
        public void Tables()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2002);

            Assert.AreEqual(false, compatibilityOptions.AdjustLineHeightInTable);
            Assert.AreEqual(false, compatibilityOptions.AlignTablesRowByRow);
            Assert.AreEqual(true, compatibilityOptions.AllowSpaceOfSameStyleInTable);
            Assert.AreEqual(true, compatibilityOptions.DoNotAutofitConstrainedTables);
            Assert.AreEqual(true, compatibilityOptions.DoNotBreakConstrainedForcedTable);
            Assert.AreEqual(false, compatibilityOptions.DoNotBreakWrappedTables);
            Assert.AreEqual(false, compatibilityOptions.DoNotSnapToGridInCell);
            Assert.AreEqual(false, compatibilityOptions.DoNotUseHTMLParagraphAutoSpacing);
            Assert.AreEqual(true, compatibilityOptions.DoNotVertAlignCellWithSp);
            Assert.AreEqual(false, compatibilityOptions.ForgetLastTabAlignment);
            Assert.AreEqual(true, compatibilityOptions.GrowAutofit);
            Assert.AreEqual(false, compatibilityOptions.LayoutRawTableWidth);
            Assert.AreEqual(false, compatibilityOptions.LayoutTableRowsApart);
            Assert.AreEqual(false, compatibilityOptions.NoColumnBalance);
            Assert.AreEqual(false, compatibilityOptions.OverrideTableStyleFontSizeAndJustification);
            Assert.AreEqual(false, compatibilityOptions.UseSingleBorderforContiguousCells);
            Assert.AreEqual(true, compatibilityOptions.UseWord2002TableStyleRules);
            Assert.AreEqual(false, compatibilityOptions.UseWord2010TableStyleRules);

            // These options will become available in File > Options > Advanced > Compatibility Options in the output document
            doc.Save(ArtifactsDir + "CompatibilityOptions.Tables.docx");
        }
示例#4
0
 private bool method_155(CompatibilityOptions A_0)
 {
     if (this.method_2().ContainsKey(A_0))
     {
         return(this.method_2()[A_0]);
     }
     return(false);
 }
        /// <summary>
        /// Creates a link for the next page of results; To be used as the value of @odata.nextLink.
        /// </summary>
        /// <param name="request">The request on which to base the next page link.</param>
        /// <param name="pageSize">The number of results allowed per page.</param>
        /// <param name="instance">The instance based on which the skiptoken value is generated. </param>
        /// <param name="objToSkipTokenValue">Function that extracts out the skiptoken value from the instance.</param>
        /// <returns>A next page link.</returns>
        public static Uri GetNextPageLink(this HttpRequestMessage request, int pageSize, object instance, Func <object, string> objToSkipTokenValue)
        {
            if (request == null || request.RequestUri == null)
            {
                throw Error.ArgumentNull("request");
            }

            CompatibilityOptions options = request.GetCompatibilityOptions();

            return(GetNextPageHelper.GetNextPageLink(request.RequestUri, request.GetQueryNameValuePairs(), pageSize, instance, objToSkipTokenValue, options));
        }
示例#6
0
 private void method_153(CompatibilityOptions A_0, bool A_1)
 {
     if (this.method_2().ContainsKey(A_0))
     {
         this.method_2()[A_0] = A_1;
     }
     else
     {
         this.method_2().Add(A_0, A_1);
     }
 }
        public void List()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(true, compatibilityOptions.UnderlineTabInNumList);
            Assert.AreEqual(true, compatibilityOptions.UseNormalStyleForList);

            // These options will become available in File > Options > Advanced > Compatibility Options in the output document
            doc.Save(ArtifactsDir + "CompatibilityOptions.List.docx");
        }
        public void List()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(true, compatibilityOptions.UnderlineTabInNumList);
            Assert.AreEqual(true, compatibilityOptions.UseNormalStyleForList);

            // In the output document, these settings can be accessed in Microsoft Word via
            // File -> Options -> Advanced -> Compatibility options for...
            doc.Save(ArtifactsDir + "CompatibilityOptions.List.docx");
        }
        public void Alignment()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(true, compatibilityOptions.CachedColBalance);
            Assert.AreEqual(true, compatibilityOptions.DoNotVertAlignInTxbx);
            Assert.AreEqual(true, compatibilityOptions.DoNotWrapTextWithPunct);
            Assert.AreEqual(false, compatibilityOptions.NoTabHangInd);

            // These options will become available in File > Options > Advanced > Compatibility Options in the output document
            doc.Save(ArtifactsDir + "CompatibilityOptions.Alignment.docx");
        }
        public void Alignment()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(true, compatibilityOptions.CachedColBalance);
            Assert.AreEqual(true, compatibilityOptions.DoNotVertAlignInTxbx);
            Assert.AreEqual(true, compatibilityOptions.DoNotWrapTextWithPunct);
            Assert.AreEqual(false, compatibilityOptions.NoTabHangInd);

            // In the output document, these settings can be accessed in Microsoft Word via
            // File -> Options -> Advanced -> Compatibility options for...
            doc.Save(ArtifactsDir + "CompatibilityOptions.Alignment.docx");
        }
        public void Legacy()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.FootnoteLayoutLikeWW8);
            Assert.AreEqual(false, compatibilityOptions.LineWrapLikeWord6);
            Assert.AreEqual(false, compatibilityOptions.MWSmallCaps);
            Assert.AreEqual(false, compatibilityOptions.ShapeLayoutLikeWW8);
            Assert.AreEqual(false, compatibilityOptions.UICompat97To2003);

            // These options will become available in File > Options > Advanced > Compatibility Options in the output document
            doc.Save(ArtifactsDir + "CompatibilityOptions.Legacy.docx");
        }
        public void WordPerfect()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.SuppressTopSpacingWP);
            Assert.AreEqual(false, compatibilityOptions.TruncateFontHeightsLikeWP6);
            Assert.AreEqual(false, compatibilityOptions.WPJustification);
            Assert.AreEqual(false, compatibilityOptions.WPSpaceWidth);
            Assert.AreEqual(false, compatibilityOptions.WrapTrailSpaces);

            // These options will become available in File > Options > Advanced > Compatibility Options in the output document
            doc.Save(ArtifactsDir + "CompatibilityOptions.WordPerfect.docx");
        }
        public void Legacy()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.FootnoteLayoutLikeWW8);
            Assert.AreEqual(false, compatibilityOptions.LineWrapLikeWord6);
            Assert.AreEqual(false, compatibilityOptions.MWSmallCaps);
            Assert.AreEqual(false, compatibilityOptions.ShapeLayoutLikeWW8);
            Assert.AreEqual(false, compatibilityOptions.UICompat97To2003);

            // In the output document, these settings can be accessed in Microsoft Word via
            // File -> Options -> Advanced -> Compatibility options for...
            doc.Save(ArtifactsDir + "CompatibilityOptions.Legacy.docx");
        }
        public void WordPerfect()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.SuppressTopSpacingWP);
            Assert.AreEqual(false, compatibilityOptions.TruncateFontHeightsLikeWP6);
            Assert.AreEqual(false, compatibilityOptions.WPJustification);
            Assert.AreEqual(false, compatibilityOptions.WPSpaceWidth);
            Assert.AreEqual(false, compatibilityOptions.WrapTrailSpaces);

            // In the output document, these settings can be accessed in Microsoft Word via
            // File -> Options -> Advanced -> Compatibility options for...
            doc.Save(ArtifactsDir + "CompatibilityOptions.WordPerfect.docx");
        }
        public void Breaks()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.ApplyBreakingRules);
            Assert.AreEqual(true, compatibilityOptions.DoNotUseEastAsianBreakRules);
            Assert.AreEqual(false, compatibilityOptions.ShowBreaksInFrames);
            Assert.AreEqual(true, compatibilityOptions.SplitPgBreakAndParaMark);
            Assert.AreEqual(true, compatibilityOptions.UseAltKinsokuLineBreakRules);
            Assert.AreEqual(false, compatibilityOptions.UseWord97LineBreakRules);

            // These options will become available in File > Options > Advanced > Compatibility Options in the output document
            doc.Save(ArtifactsDir + "CompatibilityOptions.Breaks.docx");
        }
        public void Breaks()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.ApplyBreakingRules);
            Assert.AreEqual(true, compatibilityOptions.DoNotUseEastAsianBreakRules);
            Assert.AreEqual(false, compatibilityOptions.ShowBreaksInFrames);
            Assert.AreEqual(true, compatibilityOptions.SplitPgBreakAndParaMark);
            Assert.AreEqual(true, compatibilityOptions.UseAltKinsokuLineBreakRules);
            Assert.AreEqual(false, compatibilityOptions.UseWord97LineBreakRules);

            // In the output document, these settings can be accessed in Microsoft Word via
            // File -> Options -> Advanced -> Compatibility options for...
            doc.Save(ArtifactsDir + "CompatibilityOptions.Breaks.docx");
        }
        /// <summary>
        /// Prints all options of a CompatibilityOptions object and indicates whether they are enabled or disabled
        /// </summary>
        private static void PrintCompatibilityOptions(CompatibilityOptions options)
        {
            for (int i = 1; i >= 0; i--)
            {
                Console.WriteLine(Convert.ToBoolean(i) ? "\tEnabled options:" : "\tDisabled options:");
                SortedSet <string> optionNames = new SortedSet <string>();

                foreach (System.ComponentModel.PropertyDescriptor descriptor in System.ComponentModel.TypeDescriptor.GetProperties(options))
                {
                    if (descriptor.PropertyType == Type.GetType("System.Boolean") && i == Convert.ToInt32(descriptor.GetValue(options)))
                    {
                        optionNames.Add(descriptor.Name);
                    }
                }

                foreach (string s in optionNames)
                {
                    Console.WriteLine($"\t\t{s}");
                }
            }
        }
        /// <summary>
        /// Creates a link for the next page of results; To be used as the value of @odata.nextLink.
        /// </summary>
        /// <param name="request">The request on which to base the next page link.</param>
        /// <param name="pageSize">The number of results allowed per page.</param>
        /// <param name="instance">Object which can be used to generate the skiptoken value.</param>
        /// <param name="objectToSkipTokenValue">Function that takes in the last object and returns the skiptoken value string.</param>
        /// <returns>A next page link.</returns>
        public static Uri GetNextPageLink(this HttpRequest request, int pageSize, object instance, Func <object, string> objectToSkipTokenValue)
        {
            if (request == null)
            {
                throw Error.ArgumentNull("request");
            }

            UriBuilder uriBuilder = new UriBuilder(request.Scheme, request.Host.Host)
            {
                Path = (request.PathBase + request.Path).ToUriComponent()
            };

            if (request.Host.Port.HasValue)
            {
                uriBuilder.Port = request.Host.Port.Value;
            }

            CompatibilityOptions compatibilityOptions = request.GetCompatibilityOptions();

            IEnumerable <KeyValuePair <string, string> > queryParameters = request.Query.SelectMany(kvp => kvp.Value, (kvp, value) => new KeyValuePair <string, string>(kvp.Key, value));

            return(GetNextPageHelper.GetNextPageLink(uriBuilder.Uri, queryParameters, pageSize, instance, objectToSkipTokenValue, compatibilityOptions));
        }
        [Test] //ExSkip
        public void OptimizeFor()
        {
            // Create a blank document and get its CompatibilityOptions object
            Document             doc     = new Document();
            CompatibilityOptions options = doc.CompatibilityOptions;

            // By default, the CompatibilityOptions will contain the set of values printed below
            Console.WriteLine("\nDefault optimization settings:");
            PrintCompatibilityOptions(options);

            // These attributes can be accessed in the output document via File > Options > Advanced > Compatibility for...
            doc.Save(ArtifactsDir + "CompatibilityOptions.OptimizeFor.DefaultSettings.docx");

            // We can use the OptimizeFor method to set these values automatically
            // for maximum compatibility with some Microsoft Word versions
            doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2010);
            Console.WriteLine("\nOptimized for Word 2010:");
            PrintCompatibilityOptions(options);

            doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2000);
            Console.WriteLine("\nOptimized for Word 2000:");
            PrintCompatibilityOptions(options);
        }
        [Test] //ExSkip
        public void OptimizeFor()
        {
            Document doc = new Document();

            // This object contains an extensive list of flags unique to each document
            // that allow us to facilitate backward compatibility with older versions of Microsoft Word.
            CompatibilityOptions options = doc.CompatibilityOptions;

            // Print the default settings for a blank document.
            Console.WriteLine("\nDefault optimization settings:");
            PrintCompatibilityOptions(options);

            // We can access these settings in Microsoft Word via "File" -> "Options" -> "Advanced" -> "Compatibility options for...".
            doc.Save(ArtifactsDir + "CompatibilityOptions.OptimizeFor.DefaultSettings.docx");

            // We can use the OptimizeFor method to ensure optimal compatibility with a specific Microsoft Word version.
            doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2010);
            Console.WriteLine("\nOptimized for Word 2010:");
            PrintCompatibilityOptions(options);

            doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2000);
            Console.WriteLine("\nOptimized for Word 2000:");
            PrintCompatibilityOptions(options);
        }
        public void Spacing()
        {
            Document doc = new Document();

            CompatibilityOptions compatibilityOptions = doc.CompatibilityOptions;

            compatibilityOptions.OptimizeFor(MsWordVersion.Word2000);

            Assert.AreEqual(false, compatibilityOptions.AutoSpaceLikeWord95);
            Assert.AreEqual(true, compatibilityOptions.DisplayHangulFixedWidth);
            Assert.AreEqual(false, compatibilityOptions.NoExtraLineSpacing);
            Assert.AreEqual(false, compatibilityOptions.NoLeading);
            Assert.AreEqual(false, compatibilityOptions.NoSpaceRaiseLower);
            Assert.AreEqual(false, compatibilityOptions.SpaceForUL);
            Assert.AreEqual(false, compatibilityOptions.SpacingInWholePoints);
            Assert.AreEqual(false, compatibilityOptions.SuppressBottomSpacing);
            Assert.AreEqual(false, compatibilityOptions.SuppressSpBfAfterPgBrk);
            Assert.AreEqual(false, compatibilityOptions.SuppressSpacingAtTopOfPage);
            Assert.AreEqual(false, compatibilityOptions.SuppressTopSpacing);
            Assert.AreEqual(false, compatibilityOptions.UlTrailSpace);

            // These options will become available in File > Options > Advanced > Compatibility Options in the output document
            doc.Save(ArtifactsDir + "CompatibilityOptions.Spacing.docx");
        }
示例#22
0
        internal static Uri GetNextPageLink(Uri requestUri, IEnumerable <KeyValuePair <string, string> > queryParameters, int pageSize, object instance = null, Func <object, string> objectToSkipTokenValue = null, CompatibilityOptions options = CompatibilityOptions.None)
        {
            Contract.Assert(requestUri != null);
            Contract.Assert(queryParameters != null);

            StringBuilder queryBuilder = new StringBuilder();

            int nextPageSkip = pageSize;

            String skipTokenValue = objectToSkipTokenValue == null ? null : objectToSkipTokenValue(instance);
            //If no value for skiptoken can be extracted; revert to using skip
            bool useDefaultSkip = String.IsNullOrWhiteSpace(skipTokenValue);

            foreach (KeyValuePair <string, string> kvp in queryParameters)
            {
                string key   = kvp.Key.ToLowerInvariant();
                string value = kvp.Value;

                switch (key)
                {
                case "$top":
                    int top;
                    if (Int32.TryParse(value, out top))
                    {
                        // We decrease top by the pageSize because that's the number of results we're returning in the current page. If the $top query option's value is less than or equal to the page size, there is no next page.
                        if ((options & CompatibilityOptions.AllowNextLinkWithNonPositiveTopValue) != 0 || top > pageSize)
                        {
                            value = (top - pageSize).ToString(CultureInfo.InvariantCulture);
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    break;

                case "$skip":
                    if (useDefaultSkip)
                    {
                        //Need to increment skip only if we are not using skiptoken
                        int skip;
                        if (Int32.TryParse(value, out skip))
                        {
                            // We increase skip by the pageSize because that's the number of results we're returning in the current page
                            nextPageSkip += skip;
                        }
                    }
                    continue;

                case "$skiptoken":
                    continue;

                default:
                    break;
                }

                if (key.Length > 0 && key[0] == '$')
                {
                    // $ is a legal first character in query keys
                    key = '$' + Uri.EscapeDataString(key.Substring(1));
                }
                else
                {
                    key = Uri.EscapeDataString(key);
                }

                value = Uri.EscapeDataString(value);

                queryBuilder.Append(key);
                queryBuilder.Append('=');
                queryBuilder.Append(value);
                queryBuilder.Append('&');
            }

            if (useDefaultSkip)
            {
                queryBuilder.AppendFormat("$skip={0}", nextPageSkip);
            }
            else
            {
                queryBuilder.AppendFormat("$skiptoken={0}", skipTokenValue);
            }

            UriBuilder uriBuilder = new UriBuilder(requestUri)
            {
                Query = queryBuilder.ToString()
            };

            return(uriBuilder.Uri);
        }
        /// <summary>
        /// Set the CompatibilityOptions.
        /// </summary>
        /// <param name="builder">The <see cref="IEndpointRouteBuilder"/>.</param>
        /// <param name="options">The <see cref="CompatibilityOptions"/></param>
        public static IEndpointRouteBuilder SetCompatibilityOptions(this IEndpointRouteBuilder builder, CompatibilityOptions options)
        {
            if (builder == null)
            {
                throw Error.ArgumentNull("builder");
            }

            ODataOptions defaultOptions = builder.GetDefaultODataOptions();

            defaultOptions.CompatibilityOptions = options;
            return(builder);
        }
示例#24
0
 internal bool method_0(CompatibilityOptions A_0)
 {
     return(this.method_155(A_0));
 }
示例#25
0
 internal void method_1(CompatibilityOptions A_0, bool A_1)
 {
     this.method_153(A_0, A_1);
 }
        /// <summary>
        /// Set the ODataCompatibilityOption.
        /// </summary>
        /// <param name="configuration">The server configuration.</param>
        /// <param name="options">The <see cref="CompatibilityOptions"/></param>
        public static void SetCompatibilityOptions(this HttpConfiguration configuration, CompatibilityOptions options)
        {
            if (configuration == null)
            {
                throw Error.ArgumentNull("configuration");
            }

            configuration.Properties[CompatibilityOptionsKey] = options;
        }