Как найти и заменить текст в заголовке альбомной страницы документа word [c# word interop]? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть шаблонное слово документа, и я использую функцию для замены указанного c текста на желаемый текст. Он работает для всего документа (основной текст и заголовки), за исключением заголовка на последней странице, которая представляет собой альбомную страницу.

        void FindAndReplace2(Microsoft.Office.Interop.Word.Document document, string placeHolder, string newText)
        {

            object missingObject = null;


            object item = Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage;

            object whichItem = Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToFirst;
            object replaceAll = Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll;
            object forward = true;
            object matchAllWord = true;
            object matchCase = false;
            object originalText = placeHolder;
            object replaceText = newText;

            document.GoTo(ref item, ref whichItem, ref missingObject, ref missingObject);
            foreach (Microsoft.Office.Interop.Word.Range rng in document.StoryRanges)
            {
                rng.Find.Execute(ref originalText, ref matchCase,
                ref matchAllWord, ref missingObject, ref missingObject, ref missingObject, ref forward,
                ref missingObject, ref missingObject, ref replaceText, ref replaceAll, ref missingObject,
                ref missingObject, ref missingObject, ref missingObject);
            }
        }

Я не уверен, почему эта функция будет работать на всех, кроме страница пейзажа. Я не знаю, как действовать дальше.

Основной пример файла


            object oMissing = System.Reflection.Missing.Value;
            object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
            // Start Word and create a new document.
            Word.Application oWord;
            Word.Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = true;
            oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);


            //Template file
            object oTemplate =  @"FILEPATH";
            oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);

            string SiteName="J8865";
            FindAndReplace2(oDoc, "Sample", SiteName);

Примечание. Этот файл является лишь выдержкой из моего основного файла.

1 Ответ

0 голосов
/ 27 марта 2020

Я решил эту проблему совершенно по-другому. Я отредактировал свой шаблон do c, связав заголовки на книжной и альбомной страницах. Это делается путем выбора заголовка, попавшего во вкладку дизайна >> Naviagtion >> Next >> Ссылка на предыдущий. Ваше форматирование, вероятно, будет испорчено. Используйте «вставить вкладку выравнивания» для форматирования вашего заголовка. Полезная ссылка. https://cybertext.wordpress.com/2014/07/25/word-auto-aligning-headerfooter-info-in-portrait-and-landscape-pages/.

...