• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

Lotus And Word

yerke

Well-known member
28.08.2007
392
0
#1
Привет всем

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

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

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

abbatik

Lotus team
20.10.2008
277
0
#2
Можно считать кол-во строчек (символов) и по ним соответсвенно определять заполняемость документа.

Честно говоря не делал так, но это первое, что приходит в голову :)
 

yerke

Well-known member
28.08.2007
392
0
#3
Можно считать кол-во строчек (символов) и по ним соответсвенно определять заполняемость документа.

Честно говоря не делал так, но это первое, что приходит в голову
ну я могу до стучаться до последней страницей документа
в ВБА есть класс Page
но у этого Page-а нету проперти типа Simbols Count или Lines Count
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Я думаю узнать такое непросто. Т.к. шрифты разные и всё такое. :)
Посмотри объект ParagraphFormat и его свойство KeepWithNext.

Также свойство KeepTogether. :)
 

abbatik

Lotus team
20.10.2008
277
0
#5
ну я могу до стучаться до последней страницей документа
в ВБА есть класс Page
но у этого Page-а нету проперти типа Simbols Count или Lines Count
У тебя есть Value, или Text.

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

yerke

Well-known member
28.08.2007
392
0
#8
Ну поделись с коллегами, может кому-то когда-то пригодится
Код:
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