THotPDF.OpenLoadedPageContentStream

로드 페이지 /Contents 값을 caller 소유의 읽기 전용 논리 stream 하나로 엽니다

Delphi 구문

function OpenLoadedPageContentStream(
  PageIndex: Integer;
  out ContentStream: TStream
): boolean;

C++Builder 구문

bool __fastcall OpenLoadedPageContentStream(
  int PageIndex,
  System::Classes::TStream *&ContentStream
);

0 기반 로드 페이지에 유효한 content stream이 하나 이상 있으면 결과는 true입니다

동작

단일 content stream과 /Contents 배열은 같은 interface를 사용하며, 인접 세그먼트 사이에 line-feed 바이트를 하나 끼워 세그먼트 경계를 넘어 토큰이 붙지 않도록 합니다

필터링되지 않은 세그먼트는 소스 기반 상태를 유지하며 완전히 materialize하지 않고 읽습니다. 필터링된 세그먼트는 하나의 adaptive 임시 stream으로 지연 디코딩되고, 순회가 다른 곳으로 이동하면 이전에 디코딩한 세그먼트는 해제됩니다

필터링된 세그먼트 길이는 필요할 때 확인하므로 알려진 prefix를 읽을 때는 이후 세그먼트를 디코딩하지 않습니다. Size를 요구하거나 끝에서 seek하면 남은 모든 길이가 resolve됩니다

이 stream은 random 읽기와 seek를 지원하지만 Write와 SetSize는 거부합니다

소유권

ContentStream은 호출자가 해제해야 하고, 소유 THotPDF instance와 로드된 문서는 반환된 stream보다 오래 살아 있어야 합니다

GetLastPageContentSequenceInfo를 사용하면 시퀀스 작업량과 유지 메모리 원격 측정을 살펴볼 수 있습니다