Word Automation: определить, нужен ли разрыв страницы? - PullRequest
5 голосов
/ 05 мая 2009

Я работаю над проектом на C #, который будет создавать документ Word с использованием API автоматизации Word.

Я хотел бы вставить разрывы страниц в определенных точках сгенерированного документа, и в настоящее время я делаю это успешно с помощью следующего кода:

// Generate page break
object pageBreak = WdBreakType.wdPageBreak;
wordApp.Selection.InsertBreak(ref pageBreak);

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

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

Есть ли способ получить доступ к положению курсора? Или другое решение, которое сделало бы то же самое? Это кажется простым требованием, поэтому я заранее прошу прощения, если пропустил очевидное.

Ответы [ 2 ]

5 голосов
/ 21 мая 2009

Предполагая, что вы программно строите документ таким образом, чтобы WordApp.Selection правильно отражал вашу фактическую (и соответствующую) позицию в документе, вы можете определить его строку и столбец на его начальной странице, используя его свойство Information и следующие два перечисления WdInformation (показанные здесь как VBA; не уверены, что синтаксис .NET PIA не используется):

line = wordApp.Selection.Information(wdFirstCharacterLineNumber)
col = wordApp.Selection.Information(wdFirstCharacterColumnNumber)

Эти значения соответствуют значениям Ln и Col, отображаемым в строке состояния Word. Если они оба равны 1, то вы находитесь на первой позиции страницы, на которой начинается выбор.

Удачи!

0 голосов
/ 21 мая 2009

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

...