PDFium Delphi Component Docs

CharacterGenerated Propiedad

Componente: TPdf  ·  Unidad: PDFium
Devuelve True cuando el carácter en el índice especificado fue sintetizado por PDFium durante la extracción de texto en lugar de ser dibujado explícitamente por el flujo de contenido de la página. Se emiten caracteres sintéticos para la expansión de ligaduras, la separación silábica suave y las heurísticas de límites de palabra/línea para que los resultados de búsqueda y seleccionar todo se lean con naturalidad

Syntax

property CharacterGenerated[Index: Integer]: Boolean;// solo lectura

IndexÍndice de carácter basado en cero en la página actual, en el rango 0 a CharacterCount - 1

Description

CharacterGenerated devuelve True cuando el carácter en el índice especificado fue generado internamente por PDFium en lugar de estar presente en el flujo de contenido original. Ejemplos típicos son: descomposición de ligaduras (dividir un glifo de ligadura fi en f + i), el espacio final que PDFium inserta entre ejecuciones de texto adyacentes que están visualmente separadas, y los caracteres de salto de línea inyectados al final de cada línea visual

Los caracteres generados no tienen dibujo propio en el flujo de contenido de la página, por lo que sus cuadros delimitadores se derivan de los glifos vecinos. Trate su posición en la página con precaución si necesita pruebas de clic precisas a nivel de píxel; su CharacterRectangle puede colapsar a una región de ancho o alto cero

Para tareas como la extracción textual exacta (firmas digitales, flujos de trabajo de hash de texto, comparación ASCII-verdadera con el flujo de contenido de la página), filtre primero los caracteres generados. Para la búsqueda de texto normal y la copia al portapapeles, la bandera es puramente informativa: PDFium ya ha insertado los caracteres porque los usuarios los esperan

Remarks

Example

// Construir una cadena textual que contenga solo caracteres del flujo de contenido
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