|
Определить количество текста на последней странице
|
|||
---|---|---|---|
#18+
Сижу уже второй день, ломаю голову над тем, как переверстать шаблон документа, чтобы отработать замечание от заказчика. Постановка: Есть документ, содержимое берется из ИС и заполняется определенный шаблон (используются поля - Merge Fields и какой-то вероятно изначально откуда-то позаимствованный код на основе дотнетовской библиотеки DocumentFormat.OpenXml их заполнения, но уже откровенно переполненный велосипедами и различными дополнениями для хитрых хотелок заказчика). Содержимое - произвольное по объему, может получиться любое количество страниц. На каждой странице, кроме последней, внизу необходимо выводить блок для ФИО и подписи (ясно дело, тут через нижний колонтитул), но на последней - сразу же после завершения контента: https://a.radikal.ru/a08/1810/3f/f375118021a3.png Это, в итоге, оказался вопрос решаемый - CTRL+F9 и пишем выражение { IF { PAGE }={ NUMPAGES } "Тут какой-либо текст" "" }, а для последней тот же кусок с подписью ставим уже в конец основного содержимого документа Но при определенном размере содержимого этот последний абзац с подписью уходит в одиночестве на последнюю страницу: https://b.radikal.ru/b21/1810/27/60a8bc58604b.png то есть по факту достаточно того, что есть подпись в нижнем колонтитуле на предпоследней странице и последняя страница бессмысленна не нужна. Вариант "не печатать последнюю страницу" был отвергнут заказчиком сразу же. Вариант , что запихнуть блок подписи и конец документа (прямоугольнички ЗА-ПРОТИВ и еще что-то) в какую-нибудь таблицу или подобное, что перенесется на следующую страницу целиком, скорее всего тоже не прокатит - пойдут вопросы "а че так много пустого места" Таким образом вопрос такой - есть ли какая-то возможность через какие-нибудь вычисляемые поля с формулами определить, что данный абзац - единственный на странице? Или может есть какой-то другой обходной маневр, чтобы избежать переноса 1-2 строчек на новую страницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 18:48 |
|
Определить количество текста на последней странице
|
|||
---|---|---|---|
#18+
Cheriksoftманевр, чтобы избежать переноса 1-2 строчек на новую страницу?В Ворде с незапамятных времен есть команда "Сократить на страницу". В Word VBA F1 - Document.FitToPages Method ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2018, 20:47 |
|
Определить количество текста на последней странице
|
|||
---|---|---|---|
#18+
Казанский, Спасибо за совет, про эту опцию не знал. Однако все равно остается проблема - применять ее во время генерации документа во всех случаях не вариант, сильно уменьшается размер шрифта, когда у тебя текста на 1.7 страницы, скажем. Заказчику просто сказать про эту опцию тоже не вариант - их позиция в том, что "никто ничего редактировать не будет, нам нужно чтобы сразу нормальные документы в 100% случаев выдавались, чтобы сразу их на печать выводить", а уж тем более рассказывать пользователям на местах про опции где-то в дебрях менюшек. Вопрос с определением количества контента, оставшегося на последней странице все равно остается открытым ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 10:12 |
|
Определить количество текста на последней странице
|
|||
---|---|---|---|
#18+
Cheriksoft, на VBA можно так - переводите на дотнет. myDoc - ссылка на документ Ворда Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2018, 11:12 |
|
|
start [/forum/topic.php?fid=61&gotonew=1&tid=2172236]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
13ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 151ms |
0 / 0 |