PDFium Delphi Component Docs

CharacterIsHyphen Свойство

Компонент: TPdf  ·  Модуль: PDFium
Возвращает True, когда символ по указанному индексу распознан как мягкий перенос, используемый для разрыва слова в конце строки. Полезно при восстановлении слов через переносы строк без сохранения видимого дефиса

Syntax

property CharacterIsHyphen[Index: Integer]: Boolean; // read only

IndexИндекс символа на текущей странице с нуля, в диапазоне от 0 до CharacterCount - 1

Description

CharacterIsHyphen возвращает True, когда PDFium классифицирует символ в Index как мягкий (переносной) дефис, а не обычный дефис из состава сложного слова. Классификация эвристическая: смотрятся Unicode code point символа, позиция конца строки и близость следующего текстового прогона, чтобы решить, сохранять ли дефис при склейке строк

Мягкие переносы вставляют вёрстальные движки (LaTeX, Word, InDesign), чтобы разбивать длинные слова по строкам. При копировании текста из PDF-ридера мягкий дефис обычно отбрасывается, и "high-
way" вставляется как highway, а не как high-way. Это свойство позволяет вашему коду извлечения воспроизвести то же поведение

Свойство не различает Unicode-мягкий перенос (U+00AD) и обычный hyphen-minus (U+002D), оказавшийся в конце строки, — в таких ситуациях оба дадут True. Если нужен только случай U+00AD, сравнивайте Character[Index] напрямую

Remarks

Example

// Reconstruct words across line wraps, dropping soft hyphens
var
  I: Integer;
  S: WString;
begin
  S := '';
  for I := 0 to Pdf.CharacterCount - 1 do
    if not Pdf.CharacterIsHyphen[I] then
      S := S + Pdf.Character[I];
  Memo1.Text := S;
end;

See Also

Character, CharacterGenerated, CharacterCount, Text