c # Interop Word Rows.AllowBreakAcrossPages - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь написать таблицу с Interop Word, но я не хочу допускать разрывы между страницами.Поэтому я использую свойство Rows.AllowBreakAcrossPages, но оно не работает для меня, и я не знаю, в чем проблема?

любая помощь?

 Word.Table table = rngDoc.Tables.Add(rngDoc, numFilasNueva, numColumnas);
        table.Rows.AllowBreakAcrossPages = (int)Microsoft.Office.Core.MsoTriState.msoFalse;

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Я сделал это

table.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;
table.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;
table.Rows.AllowBreakAcrossPages = (int)Microsoft.Office.Core.MsoTriState.msoFalse;
Word.ParagraphFormat pf = table.Range.ParagraphFormat;
pf.KeepWithNext = (int)Microsoft.Office.Core.MsoTriState.msoTrue;
pf.KeepTogether = (int)Microsoft.Office.Core.MsoTriState.msoTrue;
0 голосов
/ 08 марта 2019

Свойство AllowBreakAcrossPages работает только для отдельных строк. Невозможно сохранить всю таблицу на одной странице.

Если таблицу необходимо сохранить на одной странице целиком, можно использовать форматирование абзаца: KeepWithNext (кроме последнего абзаца в таблице) и KeepLinesTogether. (Желательно со стилем, а не с прямым форматированием.)

Или вложите таблицу в другую таблицу (одна строка, один столбец = одна ячейка), для AllowBreakAcrossPages установлено значение False.

Или поместите таблицу в Frame или TextBox.

Однако эти последние два не будут переходить на другую страницу, если таблица длиннее страницы.

...