property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | Index de caractère de base 0 sur la page courante, dans la plage 0 à CharacterCount - 1 |
CharacterIsHyphen renvoie True lorsque PDFium classe le caractère à Index comme trait d’union conditionnel (saut de ligne) plutôt que comme trait d’union ordinaire appartenant à un mot composé. La classification est heuristique : elle examine le point de code Unicode du caractère, la position de fin de ligne et la proximité de la séquence de texte suivante pour décider si le trait d’union doit être conservé lors de la jointure des lignes
Les traits d’union conditionnels sont insérés par les moteurs de composition (LaTeX, Word, InDesign) pour couper les mots longs sur plusieurs lignes. Lorsque vous copiez du texte depuis une visionneuse PDF, le trait d’union conditionnel est généralement supprimé afin que « high-
way » soit collé sous la forme highway plutôt que high-way. Cette propriété permet à votre propre code d’extraction de reproduire ce comportement
La propriété ne distingue pas le trait d’union conditionnel Unicode (U+00AD) d’un trait d’union simple hyphen-minus (U+002D) qui se trouve par hasard en fin de ligne — les deux renvoient True dans ces situations. Si vous ne voulez que le cas U+00AD, comparez directement Character[Index]
False ; le même trait d’union en fin de ligne rapporte 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;