PDFium Delphi Component Docs

CharacterGenerated Eigenschaft

Komponente: TPdf  ·  Unit: PDFium
Gibt True zurück, wenn das Zeichen am angegebenen Index während der Textextraktion von PDFium erzeugt wurde, anstatt explizit vom Seiten-Inhalt-Stream gezeichnet zu werden. Erzeugte Zeichen werden für Ligatur-Auflösung, weiche Silbentrennung und Wort-/Zeilen-Grenz-Heuristiken ausgegeben, sodass Such- und Alles-auswählen-Ergebnisse natürlich lesbar sind

Syntax

property CharacterGenerated[Index: Integer]: Boolean; // read only

IndexNullbasierter Zeichenindex auf der aktuellen Seite, im Bereich 0 bis CharacterCount - 1

Description

CharacterGenerated gibt True zurück, wenn das Zeichen am angegebenen Index intern von PDFium erzeugt wurde, anstatt im ursprünglichen Inhalt-Stream vorhanden zu sein. Typische Beispiele sind: Ligatur-Zerlegung (Auftrennen einer fi-Ligatur-Glyphe in f + i), das nachgestellte Leerzeichen, das PDFium zwischen benachbarte, visuell getrennte Textläufe einfügt, und die Zeilenumbruchzeichen, die am Ende jeder visuellen Zeile eingefügt werden

Erzeugte Zeichen haben keine eigene Zeichnung im Seiten-Inhalt-Stream, daher werden ihre Begrenzungsboxen aus Nachbar-Glyphen abgeleitet. Behandeln Sie ihre Position auf der Seite mit Vorsicht, wenn Sie pixelgenaue Hit-Tests benötigen; ihr CharacterRectangle kann zu einer Region ohne Breite oder Höhe kollabieren

Für Aufgaben wie exakte wortwörtliche Extraktion (digitale Signaturen, Text-Hash-Workflows, ASCII-treuer Vergleich mit dem Seiten-Inhalt-Stream) filtern Sie erzeugte Zeichen zuerst heraus. Für normale Textsuche und Zwischenablage-Kopie ist das Flag rein informativ – PDFium hat die Zeichen bereits eingefügt, weil Nutzer sie erwarten

Remarks

Example

// Build a verbatim string that contains only characters from the content stream
var
  I: Integer;
  S: WString;
begin
  S := '';
  for I := 0 to Pdf.CharacterCount - 1 do
    if not Pdf.CharacterGenerated[I] then
      S := S + Pdf.Character[I];
  Memo1.Text := S;
end;

See Also

Character, CharacterIsHyphen, CharacterMapError, CharacterRectangle, Text