property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | Indeks znaku liczony od zera na bieżącej stronie, w zakresie od 0 do CharacterCount - 1 |
CharacterIsHyphen zwraca True, gdy PDFium klasyfikuje znak pod indeksem
Index jako miękki dywiz (łamania linii), a nie zwykły dywiz należący do wyrazu
złożonego. Klasyfikacja jest heurystyczna: patrzy na punkt kodowy Unicode znaku, położenie
końca linii i bliskość następnego przebiegu tekstowego, aby zdecydować, czy dywiz powinien
zostać zachowany przy łączeniu linii
Miękkie dywizy są wstawiane przez silniki składu (LaTeX, Word, InDesign), aby łamać
długie wyrazy między liniami. Podczas kopiowania tekstu z przeglądarki PDF miękki dywiz
jest zazwyczaj pomijany, więc „high-
way” wkleja się jako highway,
a nie jako high-way. Ta właściwość pozwala twojemu własnemu kodowi ekstrakcji
odtworzyć to zachowanie
Właściwość nie odróżnia miękkiego dywizu Unicode (U+00AD) od zwykłego
łącznika-minus (U+002D), który akurat znajduje się na końcu linii — w takich
sytuacjach oba zgłoszą True. Jeśli interesuje cię tylko przypadek
U+00AD, porównaj bezpośrednio Character[Index]
False; ten sam dywiz na końcu linii zgłasza True
// 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;