2009-05-05 4 views
5

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

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

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

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

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

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

ответ

5

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

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

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

Удачи вам!

+0

Большое спасибо за помощь. Это именно то, что я хотел сделать. –

+0

Константа строки, похоже, дает позицию с самого начала документа, а не страницы! –

0

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