property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | Nullbasierter Zeichenindex auf der aktuellen Seite, im Bereich 0 bis CharacterCount - 1 |
CharacterIsHyphen gibt True zurück, wenn PDFium das
Zeichen an Index als weiches (zeilentrennendes) Trennzeichen einstuft und nicht als normales Trennzeichen,
das zu einem zusammengesetzten Wort gehört. Die Einstufung ist heuristisch: Sie betrachtet den
Unicode-Codepoint des Zeichens, die Position am Zeilenende und die Nähe des
folgenden Textlaufs, um zu entscheiden, ob das Trennzeichen beim Zusammenfügen der Zeilen entfallen soll
Weiche Trennzeichen werden von Satzsystemen (LaTeX, Word, InDesign) eingefügt, um
lange Wörter über Zeilen hinweg zu brechen. Beim Kopieren von Text aus einem PDF-Viewer wird das weiche Trennzeichen
typischerweise entfernt, sodass „high-
way“ als highway eingefügt wird und nicht als
high-way. Diese Eigenschaft ermöglicht es Ihrem eigenen Extraktionscode, dieses
Verhalten nachzubilden
Die Eigenschaft unterscheidet nicht das Unicode-Weiche-Trennzeichen (U+00AD) von
einem normalen Hyphen-Minus (U+002D), das zufällig am Zeilenende steht — beide
melden in diesen Situationen True. Wenn Sie nur den
U+00AD-Fall möchten, vergleichen Sie Character[Index]
direkt
False; dasselbe Trennzeichen am Zeilenende meldet 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;