DrawTextFlowColumns
Текст, верстка
Описание
Прогоняет оставшийся текст слева направо через равные по ширине столбцы одной области страницы
Синтаксис
Delphi
Function TPDFlib.DrawTextFlowColumns(FlowID: Integer; Left, Top, Width, Height: Double; Columns: Integer; Gutter: Double; Balance: Integer): Integer;ActiveX
Function PDFlib::DrawTextFlowColumns(FlowID As Long, Left As Double, Top As Double, Width As Double, Height As Double, Columns As Long, Gutter As Double, Balance As Long) As LongDLL
int DLDrawTextFlowColumns(int InstanceID, int FlowID, double Left, double Top, double Width, double Height, int Columns, double Gutter, int Balance);Параметры
| FlowID | Дескриптор, возвращенный NewTextFlow |
|---|---|
| Left, Top | Позиция левого верхнего угла полной области столбцов |
| Width, Height | Доступный размер всей области столбцов |
| Columns | Число равных по ширине столбцов от 1 до 64 |
| Gutter | Неотрицательный промежуток между соседними колонками |
| Balance | 0 заполняет каждую колонку на полную высоту, 1 балансирует завершенный регион |
Возвращаемые значения
Возвращает общее число нарисованных строк либо 0, если ничего не поместилось, дескриптор или геометрия недопустимы
Примечания
Когда Balance равен 1 и весь оставшийся текст помещается в полную область, функция делит точное число оставшихся строк между запрошенными колонками
Когда текста остается больше, чем вмещает область, каждая колонка сохраняет полную запрошенную высоту, чтобы емкость не сокращалась на промежуточных страницах
Балансировка измеряет не более чем на одну строку сверх емкости области, избегая полного просмотра длинного отрывка, который должен продолжиться на другой странице
Некорректная геометрия и область, слишком короткая для одной строки, оставляют курсор потока без изменений
Пример
while PDF.TextFlowFinished(Flow)= 0 do
begin
PDF.DrawTextFlowColumns(Flow, 50, 60, 495, 720, 3, 18, 1);
if PDF.TextFlowFinished(Flow)= 0 then PDF.NewPage;
end;