PDFium Delphi Component Docs

CharacterGenerated 속성

컴포넌트: TPdf  ·  유닛: PDFium
지정한 인덱스의 character가 page content stream에 직접 그려진 것이 아니라 PDFium이 text extraction 중 합성한 것일 때 True를 반환합니다. 합성 character는 ligature 확장, soft hyphenation, 단어/줄 경계 휴리스틱에 대해 생성되며, search와 select-all 결과가 자연스럽게 읽히도록 해줍니다

Syntax

property CharacterGenerated[Index: Integer]: Boolean; // read only

Index현재 페이지의 0 기반 문자 인덱스로, 0부터 CharacterCount - 1까지의 범위입니다

Description

CharacterGenerated는 지정한 인덱스의 문자가 원본 콘텐츠 스트림에 있던 것이 아니라 PDFium이 내부적으로 생성한 것일 때 True를 반환합니다. 전형적인 예는 합자 분해 (fi 합자 글리프를 f + i로 쪼개기), 시각적으로 분리된 인접 텍스트 런 사이에 PDFium이 삽입하는 뒤따르는 공백, 그리고 각 화면 줄 끝에 넣는 줄바꿈 문자입니다

생성된 문자는 페이지 콘텐츠 스트림에 자체 드로잉이 없으므로 바운딩 박스는 이웃 글리프에서 유래합니다. 픽셀 단위로 정확한 히트 테스트가 필요하다면 화면상 위치는 신중하게 다루세요. CharacterRectangle이 폭 0이나 높이 0 영역으로 붕괴할 수 있습니다

정확한 원문 추출(전자 서명, 텍스트 해시 워크플로, 페이지 콘텐츠 스트림과의 ASCII 수준 비교) 같은 작업에서는 생성된 문자를 먼저 걸러 내세요. 일반 텍스트 검색과 클립보드 복사에서 이 플래그는 순전히 참고용입니다 — 사용자가 기대하기 때문에 PDFium이 이미 문자를 넣어 둔 상태입니다

Remarks

Example

// Build a verbatim string that contains only characters from the content stream
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