• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Lotus And Word

  • Автор темы Автор темы yerke
  • Дата начала Дата начала
Y

yerke

Привет всем

в лотусе делаю экспорт в ворд
но возник вопрос

можно ли программно определить на сколько (процентов) заполнено последняя страница сформированного документа

это нада для следующеего
если на последней странице окажется тока 2-3 строчки
то спомощью пейдж брейка с предпоследней страницы спущу оперделенной кусок текста
 
Можно считать кол-во строчек (символов) и по ним соответсвенно определять заполняемость документа.

Честно говоря не делал так, но это первое, что приходит в голову :)
 
Можно считать кол-во строчек (символов) и по ним соответсвенно определять заполняемость документа.

Честно говоря не делал так, но это первое, что приходит в голову
ну я могу до стучаться до последней страницей документа
в ВБА есть класс Page
но у этого Page-а нету проперти типа Simbols Count или Lines Count
 
Я думаю узнать такое непросто. Т.к. шрифты разные и всё такое. :)
Посмотри объект ParagraphFormat и его свойство KeepWithNext.

Также свойство KeepTogether. :)
 
ну я могу до стучаться до последней страницей документа
в ВБА есть класс Page
но у этого Page-а нету проперти типа Simbols Count или Lines Count

У тебя есть Value, или Text.

Medvic сказал(а):
Я думаю узнать такое непросто. Т.к. шрифты разные и всё такое.

Логично :)
 
Ну поделись с коллегами, может кому-то когда-то пригодится
Код:
Function PageBreaker
Const chars=300
Dim PagesCounts
Dim LPCC
Dim break
'=
'PagesCounts=wdApp.ActiveDocument.ActiveWindow.Panes(1).Pages.Count '=for 11 and 12 versions
PagesCounts=wdApp.ActiveDocument.BuiltinDocumentProperties("Number Of Pages").Value
Print "Pages Counts="+Cstr(PagesCounts)
If PagesCounts=1 Then Exit Function
'=
wdApp.Application.Selection.HomeKey(wdStory)	
For i=1 To PagesCounts-1
wdApp.Application.Browser.Next	
Next
Call wdApp.Application.Selection.EndKey(wdStory, wdExtend)		
LPCC=wdApp.Application.Selection.Characters.Count
Print Cstr(LPCC)
If LPCC>chars Then Exit Function
'=
If Not Isnumeric(mainTableStudCount) Then Exit Function	
If Not Isnumeric(mainTableCaptionCount) Then Exit Function	
break=Cint(mainTableStudCount)+Cint(mainTableCaptionCount)-4
'=
mainTable.Cell(break, 1).Select
wdApp.Application.Selection.HomeKey(wdLine)					
wdApp.Application.Selection.InsertBreak(wdPageBreak) '=спускаем несколько строк из таблицы
' с предпоследнего листа
End Function
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab