PDFium Delphi Component Docs

CharacterMapError Propiedad

Componente: TPdf  ·  Unidad: PDFium
Devuelve True cuando el carácter en el índice especificado no pudo asignarse a un punto de código Unicode válido. La bandera se informa por carácter por el extractor de texto de PDFium y permite a los llamadores identificar puntos de código que probablemente son incorrectos porque la fuente de origen carece de un CMap ToUnicode o vector de codificación utilizable

Syntax

property CharacterMapError[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

CharacterMapError devuelve True cuando PDFium encontró un error al asignar el carácter en el índice especificado a un punto de código Unicode. Cuando esto es True, el valor devuelto por Character[Index] no es fiable y a menudo recurre a un carácter de reemplazo (#$FFFD) o a un paso directo del identificador de glifo subyacente

La bandera se activa con más frecuencia en PDF producidos por controladores de impresora y herramientas de conversión que incrustan subconjuntos de fuente sin un CMap ToUnicode correspondiente, o con un CMap que no cubre el conjunto de glifos completo. Los PDF escaneados con texto OCR incrustado y los PDF que usan vectores de codificación personalizados son fuentes típicas de errores de asignación

Los llamadores que necesiten hacer un viaje de ida y vuelta del texto de un PDF deben filtrar o anotar los aciertos de CharacterMapError antes de tratarlos como contenido con capacidad de búsqueda. Un grupo de errores de asignación consecutivos normalmente indica una ejecución de cadena completa que debe reextraerse mediante OCR en lugar de la capa de texto

Remarks

Example

var
  I, BadCount: Integer;
begin
  BadCount := 0;
  for I := 0 to Pdf.CharacterCount - 1 do
    if Pdf.CharacterMapError[I] then
    begin
      Memo1.Lines.Add(Format('Map error at %d (charcode $%x)',
        [I, Pdf.Charcode[I]]));
      Inc(BadCount);
    end;
  Caption := Format('%d untranslatable characters on page', [BadCount]);
end;

See Also

Character, Charcode, CharacterGenerated, CharacterCount, Text