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 Long

DLL

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Неотрицательный промежуток между соседними колонками
Balance0 заполняет каждую колонку на полную высоту, 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;

См. также

DrawTextFlow, MeasureTextFlow, SetTextFlowMinLines