Как искать Заменить в текстовых документах, когда верхний и нижний колонтитулы отличаются на первой странице и на нечетных / четных страницах - PullRequest
0 голосов
/ 30 ноября 2011

Я успешно выполнил Search Replace в верхних и нижних колонтитулах doc, используя: этот вопрос . Я использую Delphi для управления Word с помощью OLE-автоматизации.

Теперь проблема в том, что это работает только для первой страницы в случае, если один устанавливает «другой заголовок для первой страницы» или не работает вообще, если он устанавливает «разные на нечетные / четные».

Этот документ объясняет это немного подробнее.

UPDATE:

В этом документе, указанном выше, объясняется, что MS Word управляет верхним и нижним колонтитулами как первой страницей / нечетными страницами / четными страницами. Но также возможно выбрать не один вариант, и в этом случае все верхний и нижний колонтитулы совпадают.

В случае поиска и замены с использованием кода, который я связал выше, он работает только в том случае, если не выбраны дополнительные параметры, поэтому в случае использования serachin и замены в документе, где все верхние и нижние колонтитулы совпадают. *

Если случайно этот код используется для документа, в котором выбран «различный заголовок для первой страницы», поиск и замена будут происходить только в верхнем и нижнем колонтитулах первой страницы.

Хотя он не будет работать вообще, если выбран только один вариант: «другой верхний и нижний колонтитулы на нечетных и четных страницах» (и не «разные на первой странице»).

Так что я спрашивал, решил ли кто-нибудь эту проблему правильно, циклически проходя через все случаи. Я имею в виду, что было бы полезно найти этот ответ и для других пользователей, которым необходимо выполнять поиск и замену в верхних и нижних колонтитулах в документах MS Word, используя автоматизацию Delphi и OLE.

1 Ответ

1 голос
/ 01 декабря 2011

Ответ на остальные вопросы прыгает в заголовок текущей страницы, как вы можете ясно сказать по названию. Если вы находитесь на первой странице раздела, это означает, что вы будете изменять только этот другой заголовок. Существуют и другие виды, к которым можно перейти, чтобы найти другие части документа:

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.wdseekview(v=office.11).aspx

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

Если в разделе есть только одна страница, может быть трудно перейти к заголовку по умолчанию, если у раздела есть другой заголовок для первой страницы. В этом случае вам может потребоваться отключить флаг «другая первая страница», изменить заголовок и снова включить его.

...