property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | Índice de carácter basado en cero en la página actual, en el rango de 0 a CharacterCount - 1 |
CharacterIsHyphen devuelve True cuando PDFium clasifica el
carácter en Index como un guion suave (de salto de línea) en lugar de un guion regular
que pertenece a una palabra compuesta. La clasificación es heurística: examina el punto de
código Unicode del carácter, la posición al final de línea y la proximidad de la ejecución
de texto siguiente para decidir si el guion debe conservarse al unir líneas
Los guiones suaves los insertan los motores de composición tipográfica (LaTeX, Word,
InDesign) para dividir palabras largas entre líneas. Cuando copia texto de un visor de PDF,
el guion suave normalmente se descarta, de modo que "high-
way" se pega como
highway en lugar de como high-way. Esta propiedad permite que su propio
código de extracción reproduzca ese comportamiento
La propiedad no distingue el guion suave de Unicode (U+00AD) de un
guion-menos regular (U+002D) que resulte estar al final de una línea — ambos
informarán True en esas situaciones. Si solo quiere el caso U+00AD,
compare Character[Index] directamente
False; el mismo guion al final de línea informa 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;