property CharacterCount: Integer; // read only
CharacterCount liefert die Anzahl der Zeichen, die PDFium auf der
FPDF_TEXTPAGE der aktiven Seite identifiziert — dieselbe Indizierung, die
Character[Index], CharacterRectangle[Index],
CharacterOrigin[Index] und die Such-/Selektionsschicht antreibt. Die Zählung
spiegelt die Glyphen nach der ToUnicode-CMap-Auflösung wider, entspricht also einem
Unicode-Codepoint je Eintrag, so wie PDFium ihn dekodiert — nicht einem PDF-Font-Programm-Glyphen
Der Wert ist 0, wenn Active False ist, wenn die
Seite keinen Textinhalt hat (reine Bild-/Vektorseiten) oder wenn der Text mit Fonts gezeichnet
ist, denen eine ToUnicode-CMap fehlt und die keine Fallback-Heuristik dekodieren konnte. PDFium
zählt auch “generierte” Leerzeichen mit, die es zur Modellierung von Zeilenumbrüchen
und Wortgrenzen synthetisiert — prüfen Sie CharacterGenerated[Index],
um echte Glyphen von synthetischen zu unterscheiden
Die typische Schleife ist for I := 0 to Pdf.CharacterCount - 1 do, wobei
Pdf.Character[I] ein WideChar zurückgibt. Verkettet man diese zu
einer Zeichenkette, ergibt sich der Textinhalt der Seite in Lesereihenfolge
CharacterCount selbst ist O(1), nachdem die Seite geparst ist; die indizierten Accessors
leisten die Arbeit je Zeichen
CharacterMapError[Index], um Glyphen zu finden, die PDFium
nicht zurück auf Unicode mappen konnte; die brauchen typischerweise OCR oder eine
Prüfung des Font-Programms
var S: string;
var I: Integer;
SetLength(S, Pdf1.CharacterCount);
for I := 1 to Length(S) do
S[I] := Pdf1.Character[I - 1];
Memo1.Lines.Add(S);