property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | Op nul gebaseerde tekenindex op de huidige pagina, in het bereik 0 tot en met CharacterCount - 1 |
CharacterIsHyphen geeft True terug wanneer PDFium het teken
op Index classificeert als een zachte afbreekstreep voor regeleinden in plaats van een
gewone afbreekstreep die bij een samengesteld woord hoort. De classificatie is heuristisch:
er wordt gekeken naar het Unicode-codepunt van het teken, de positie aan het regeleinde en de
nabijheid van de volgende tekstloop om te beslissen of het streepje behouden moet worden bij
het samenvoegen van regels
Zachte afbreekstreepjes worden door zetsystemen (LaTeX, Word, InDesign) ingevoegd om lange
woorden over regels te verdelen. Bij het kopiëren van tekst uit een PDF-viewer wordt het zachte
streepje doorgaans weggelaten, zodat "high-
way" als highway wordt geplakt in plaats
van als high-way. Met deze eigenschap kunt u dat gedrag in uw eigen extractiecode
nabouwen
De eigenschap maakt geen onderscheid tussen het Unicode-zachte afbreekstreepje (U+00AD)
en een gewone hyphen-min (U+002D) die toevallig aan het einde van een regel staat —
in die situaties geven beide True terug. Als u alleen het U+00AD-geval
wilt, vergelijk dan Character[Index]
rechtstreeks
False terug; hetzelfde streepje aan het regeleinde geeft True terug
// Reconstrueer woorden over regeleinden en laat zachte afbreekstreepjes weg
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;