property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | Índice de caractere baseado em zero na página atual, no intervalo de 0 a CharacterCount - 1. |
CharacterIsHyphen retorna True quando o PDFium classifica o
caractere em Index como um hífen suave (de quebra de linha) em vez de um hífen
comum que pertence a uma palavra composta. A classificação é heurística: ela examina o
ponto de código Unicode do caractere, a posição de fim de linha e a proximidade da
execução de texto seguinte para decidir se o hífen deve ser mantido ao unir linhas.
Hífens suaves são inseridos por mecanismos de diagramação (LaTeX, Word, InDesign)
para quebrar palavras longas entre linhas. Quando você copia texto de um visualizador
de PDF, o hífen suave normalmente é descartado, de modo que "high-
way" é colado
como highway em vez de high-way. Esta propriedade permite que seu
próprio código de extração reproduza esse comportamento.
A propriedade não distingue o hífen suave Unicode (U+00AD) de um
hífen-menos comum (U+002D) que acontece de estar no fim de uma linha —
ambos retornarão True nessas situações. Se você quiser apenas o caso
U+00AD, compare Character[Index]
diretamente.
False; o mesmo hífen no fim da linha retorna 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;