property CharacterIsHyphen[Index: Integer]: Boolean; // read only
| Index | 현재 페이지의 0 기반 문자 인덱스로, 0부터 CharacterCount - 1까지 범위입니다. |
CharacterIsHyphen는 True를 반환합니다. PDFium이 Index 위치의 문자를 복합어에 속하는 일반 하이픈이 아니라 소프트(줄바꿈) 하이픈으로 분류한 경우입니다. 이 분류는 휴리스틱이며, 문자의 Unicode 코드 포인트, 줄 끝 위치, 다음 텍스트 실행의 근접도를 확인하여 줄을 합칠 때 하이픈을 유지할지 결정합니다
소프트 하이픈은 조판 엔진(LaTeX, Word, InDesign)이 긴 단어를 여러 줄로 나누기 위해 삽입합니다. PDF 뷰어에서 텍스트를 복사하면 소프트 하이픈은 보통 제거되어 "high-
way"가 high-way가 아니라 highway로 붙여넣어집니다. 이 속성을 사용하면 직접 작성한 추출 코드에서도 동일한 동작을 재현할 수 있습니다
이 속성은 Unicode 소프트 하이픈(U+00AD)과 우연히 줄 끝에 놓인 일반 하이픈-마이너스(U+002D)를 구별하지 않으며, 그러한 상황에서는 둘 다 True를 보고합니다. U+00AD 경우만 필요하면 Character[Index]를 직접 비교합니다
False를 보고하고, 같은 하이픈이라도 줄 끝에 있으면 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;