GetTextBlockCharContentLocation
텍스트, 추출, 콘텐츠 스트림, 진단
설명
추출된 문자 하나와 연관된 안정적인 콘텐츠 스트림 위치와 인코딩된 소스 바이트 범위를 반환합니다
구문
Delphi
Function TPDFlib.GetTextBlockCharContentLocation(TextBlockListID, Index,
CharIndex: Integer; Out ContentLayer, StreamObjectNumber,
StreamGeneration, InstructionIndex, OperandIndex, ArrayElementIndex,
SourceByteOffset, SourceByteLength, Flags: Integer): Integer;매개변수
| TextBlockListID | ExtractPageTextBlocks가 반환한 핸들 |
|---|---|
| Index | 1 기반 텍스트 블록 인덱스 |
| CharIndex | 블록 텍스트 안의 1 기반 UTF-16 코드 단위 위치 |
| ContentLayer | 1 기반 페이지 /Contents 레이어이며 중첩 콘텐츠는 0 |
| StreamObjectNumber | 포함 스트림의 객체 번호이며 직접 스트림은 0 |
| StreamGeneration | 포함 스트림의 세대 번호 |
| InstructionIndex | 디코딩된 콘텐츠 프로그램에서의 0 기반 명령 인덱스 |
| OperandIndex | 0 기반 텍스트 문자열 피연산자 인덱스 |
| ArrayElementIndex | 0 기반 TJ 배열 요소이며 직접 문자열 피연산자는 -1 |
| SourceByteOffset | 디코딩된 문자열 값에서의 0 기반 오프셋이며 안전하게 주소 지정 가능한 범위가 없으면 -1 |
| SourceByteLength | 소스 글리프의 인코딩된 소스 바이트 수이며 안전하게 주소 지정 가능한 범위가 없으면 0 |
| Flags | 아래에서 설명하는 비트별 콘텐츠 위치 플래그 |
반환 값
| 1 | 위치 레코드가 반환되었으며 합성 레코드와 읽기 전용 레코드도 포함됩니다 |
|---|---|
| 0 | 핸들, 블록 인덱스 또는 문자 인덱스가 잘못되었습니다 |
플래그
PDF_TEXT_CHAR_CONTENT_LOCATION_VALID | 바이트 범위가 읽기 전용 플래그의 적용을 받는 콘텐츠 문자열을 식별합니다 |
|---|---|
PDF_TEXT_CHAR_CONTENT_LOCATION_GENERATED | 문자는 레이아웃 중에 생성되었으며 소스 바이트가 없습니다 |
PDF_TEXT_CHAR_CONTENT_LOCATION_LIGATURE | 여러 추출된 UTF-16 위치가 하나의 소스 글리프 범위를 공유합니다 |
PDF_TEXT_CHAR_CONTENT_LOCATION_ACTUALTEXT | 문자는 /ActualText 치환에서 왔으며 읽기 전용입니다 |
PDF_TEXT_CHAR_CONTENT_LOCATION_NESTED | 문자는 중첩된 Form 콘텐츠에서 왔으며 읽기 전용입니다 |
PDF_TEXT_CHAR_CONTENT_LOCATION_CROSS_LAYER | 피연산자와 텍스트 표시 연산자가 페이지 콘텐츠 레이어를 넘으며 읽기 전용입니다 |
PDF_TEXT_CHAR_CONTENT_LOCATION_TRANSCODED | 소스 문자열은 폰트 매핑 전에 트랜스코딩되었으므로 디코딩된 오프셋은 원래 바이트를 안전하게 주소 지정할 수 없습니다 |
비고
오프셋은 Unicode 텍스트가 아니라 디코딩된 폰트 인코딩 문자열 바이트를 가리킵니다
보조 문자와 리가처 확장은 둘 이상의 UTF-16 위치에 대해 같은 소스 범위를 반환할 수 있습니다
ReplaceTextBlockCharSourceBytes는 유효 플래그가 설정되고 읽기 전용 플래그가 하나도 없을 때만 사용하십시오
위치 조회는 추출 시점의 스팬을 쓰며 페이지 콘텐츠를 다시 파싱하지 않습니다