Ejemplo n.º 1
0
        /// <summary>
        /// Gets a WdSpecialPane from a WdStoryType.
        /// </summary>
        /// <param name="StoryType">The StoryType to convert.</param>
        /// <returns>The WdSpecialPane corresponding to that StoryType.</returns>
        internal static Word.WdSpecialPane GetSplitTypeForStory(Word.WdStoryType StoryType)
        {
            switch (StoryType)
            {
            case Word.WdStoryType.wdEvenPagesHeaderStory:
                return(Word.WdSpecialPane.wdPaneEvenPagesHeader);

            case Word.WdStoryType.wdEvenPagesFooterStory:
                return(Word.WdSpecialPane.wdPaneEvenPagesFooter);

            case Word.WdStoryType.wdFirstPageHeaderStory:
                return(Word.WdSpecialPane.wdPaneFirstPageHeader);

            case Word.WdStoryType.wdFirstPageFooterStory:
                return(Word.WdSpecialPane.wdPaneFirstPageFooter);

            case Word.WdStoryType.wdPrimaryHeaderStory:
                return(Word.WdSpecialPane.wdPanePrimaryHeader);

            case Word.WdStoryType.wdPrimaryFooterStory:
                return(Word.WdSpecialPane.wdPanePrimaryFooter);

            default:
                throw new ArgumentException("unexpected story type");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the SeekView constant needed to access a given document story.
        /// </summary>
        /// <param name="Story">The document story to be accessed.</param>
        /// <returns>The corresponding SeekView constant.</returns>
        internal static Word.WdSeekView GetSeekViewForStory(Word.WdStoryType Story)
        {
            switch (Story)
            {
            case Word.WdStoryType.wdEvenPagesFooterStory:
                return(Word.WdSeekView.wdSeekEvenPagesFooter);

            case Word.WdStoryType.wdEvenPagesHeaderStory:
                return(Word.WdSeekView.wdSeekEvenPagesHeader);

            case Word.WdStoryType.wdFirstPageFooterStory:
                return(Word.WdSeekView.wdSeekFirstPageFooter);

            case Word.WdStoryType.wdFirstPageHeaderStory:
                return(Word.WdSeekView.wdSeekFirstPageHeader);

            case Word.WdStoryType.wdPrimaryFooterStory:
                return(Word.WdSeekView.wdSeekPrimaryFooter);

            case Word.WdStoryType.wdPrimaryHeaderStory:
                return(Word.WdSeekView.wdSeekPrimaryHeader);

            default:
                return(Word.WdSeekView.wdSeekMainDocument);
            }
        }
Ejemplo n.º 3
0
        // Main routine to find text and replace it,
        //   var app = new Microsoft.Office.Interop.Word.Application();
        //public void FindReplaceAnywhere(MSWord.Document doc, string findText, string replaceText)
        public void FindReplaceAnywhere(MSWord.Document doc, Dictionary <string, string> searchAndReplace)
        {
            // Fix the skipped blank Header/Footer problem
            //    http://msdn.microsoft.com/en-us/library/aa211923(office.11).aspx
            MSWord.WdStoryType lngJunk = doc.Sections[1].Headers[MSWord.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.StoryType;

            // Iterate through all story types in the current document
            foreach (Microsoft.Office.Interop.Word.Range rngStory in doc.StoryRanges)
            {
                // Iterate through all linked stories
                var internalRangeStory = rngStory;

                do
                {
                    foreach (var srch in searchAndReplace)
                    {
                        string findText    = srch.Key;
                        string replaceText = srch.Value;
                        searchAndReplaceInStory(internalRangeStory, findText, replaceText);

                        try
                        {
                            //   6 , 7 , 8 , 9 , 10 , 11 -- http://msdn.microsoft.com/en-us/library/aa211923(office.11).aspx
                            switch (internalRangeStory.StoryType)
                            {
                            case MSWord.WdStoryType.wdEvenPagesHeaderStory:     // 6
                            case MSWord.WdStoryType.wdPrimaryHeaderStory:       // 7
                            case MSWord.WdStoryType.wdEvenPagesFooterStory:     // 8
                            case MSWord.WdStoryType.wdPrimaryFooterStory:       // 9
                            case MSWord.WdStoryType.wdFirstPageHeaderStory:     // 10
                            case MSWord.WdStoryType.wdFirstPageFooterStory:     // 11

                                if (internalRangeStory.ShapeRange.Count > 0)
                                {
                                    foreach (Microsoft.Office.Interop.Word.Shape oShp in internalRangeStory.ShapeRange)
                                    {
                                        if (oShp.TextFrame.HasText != 0)
                                        {
                                            searchAndReplaceInStory(oShp.TextFrame.TextRange, findText, replaceText);
                                        }
                                    }
                                }
                                break;

                            default:
                                break;
                            }
                        }
                        catch
                        {
                            // On Error Resume Next
                        }
                    }
                    // Get next linked story (if any)
                    internalRangeStory = internalRangeStory.NextStoryRange;
                } while (internalRangeStory != null);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Determines whether the specified story is a header or footer.
        /// </summary>
        /// <param name="StoryType">The story type to check.</param>
        /// <returns>True if it is a header or footer, otherwise False.</returns>
        internal static bool IsHeaderFooter(Word.WdStoryType StoryType)
        {
            switch (StoryType)
            {
            case Word.WdStoryType.wdPrimaryHeaderStory:
            case Word.WdStoryType.wdEvenPagesHeaderStory:
            case Word.WdStoryType.wdFirstPageHeaderStory:
            case Word.WdStoryType.wdPrimaryFooterStory:
            case Word.WdStoryType.wdEvenPagesFooterStory:
            case Word.WdStoryType.wdFirstPageFooterStory:
                return(true);

            default:
                return(false);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Determines whether the input story is a header or a footer.
        /// </summary>
        /// <param name="StoryType">The story type to check.</param>
        /// <returns>True if it is a header, False if it is a footer.</returns>
        /// <exception cref="ArgumentException">If the story type is not a valid header/footer story type, throws.</exception>
        private static bool IsHeader(Word.WdStoryType StoryType)
        {
            switch (StoryType)
            {
            case Word.WdStoryType.wdPrimaryHeaderStory:
            case Word.WdStoryType.wdEvenPagesHeaderStory:
            case Word.WdStoryType.wdFirstPageHeaderStory:
                return(true);

            case Word.WdStoryType.wdPrimaryFooterStory:
            case Word.WdStoryType.wdEvenPagesFooterStory:
            case Word.WdStoryType.wdFirstPageFooterStory:
                return(false);

            default:
                throw new ArgumentException("this is a non header/footer story type");
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Gets a HeaderFooterIndex from a WdStoryType.
        /// </summary>
        /// <param name="StoryType">The StoryType to convert.</param>
        /// <returns>The type of HeaderFooterIndex corresponding to that StoryType.</returns>
        /// <exception cref="ArgumentException">If the story type is not a valid header/footer story type, throws.</exception>
        internal static Word.WdHeaderFooterIndex GetHeaderFooterType(Word.WdStoryType StoryType)
        {
            switch (StoryType)
            {
            case Word.WdStoryType.wdPrimaryHeaderStory:
            case Word.WdStoryType.wdPrimaryFooterStory:
                return(Word.WdHeaderFooterIndex.wdHeaderFooterPrimary);

            case Word.WdStoryType.wdEvenPagesHeaderStory:
            case Word.WdStoryType.wdEvenPagesFooterStory:
                return(Word.WdHeaderFooterIndex.wdHeaderFooterEvenPages);

            case Word.WdStoryType.wdFirstPageHeaderStory:
            case Word.WdStoryType.wdFirstPageFooterStory:
                return(Word.WdHeaderFooterIndex.wdHeaderFooterFirstPage);

            default:
                throw new ArgumentException("this is a non-header/footer story type");
            }
        }