Документация PDFiumPas

TextInRectangle Метод

Эта запись API сохраняет идентификаторы, сигнатуры, блоки кода и термины PDF в исходном виде.
Компонент: TPdf  ·  Модуль: PDFium
Extract text within a rectangular boundary on the page.

Синтаксис

function TextInRectangle(Left, Top, Right, Bottom: Double): WString;

 

function TextInRectangle(Rectangle: TPdfRectangle): WString;

RectangleTPdfRectangle. A record specifying the bounding rectangle in PDF user-space coordinates (origin at lower-left, Y increases upward).

Return Value

WString (строка Unicode) со всеми символами, чьи bounding box пересекаются с указанным прямоугольником. Возвращает пустую строку, если в области не найдено текста

Описание

TextInRectangle извлекает Unicode-текст, который попадает в заданную прямоугольную область на текущей странице. Это удобно для чтения текста из конкретной зоны, например заголовка, нижнего колонтитула, ячейки таблицы или подписи поля, без обработки всей страницы

Предусмотрено две перегрузки. Четырехпараметрическая форма принимает отдельные значения Left, Вверх, Right и Bottom. Однопараметрическая форма принимает запись TPdfRectangle, что удобно, когда область уже вычислена как структура прямоугольника

Координаты используют PDF user space: начало координат находится в левом нижнем углу страницы, а Y растет вверх. Поэтому для нормально ориентированного прямоугольника Bottom имеет меньшее значение, чем Вверх. Символы включаются в результат, если их bounding box пересекается с указанной областью

Как и Text, этот метод читает логический текстовый слой страницы и работает с загруженной PDF-страницей

Пример

// Extract text from the top header area of an A4 page
// A4: 595 x 842 pt; header = top 60 pt band
Pdf1.LoadFromFile('C:\Docs\report.pdf');
Pdf1.PageIndex := 0;
var HeaderText: WString;
begin
  HeaderText := Pdf1.TextInRectangle(0, 782, 595, 842);
  ShowMessage(HeaderText);
end;

// Using TPdfRectangle overload
var
  Rect: TPdfRectangle;
  CellText: WString;
begin
  Rect.Left := 72; Rect.Bottom := 600;
  Rect.Right := 250; Rect.Top := 640;
  CellText := Pdf1.TextInRectangle(Rect);
end;

См. также

Text, CharacterCount, FindFirst