LoadFromRangeSource

문서 관리, 성능

설명

동기 랜덤 액세스 콜백을 통해 PDF를 로드하고 선택하여, HTTP 클라이언트, 데이터베이스, 객체 저장소, 사용자 지정 저장소 제공자가 파서가 건드리는 바이트 범위만 제공할 수 있게 합니다

구문

Delphi

Function TPDFlib.LoadFromRangeSource(SourceSize: Int64;
  ReadCallback: TPDFlibRangeReadEvent; Const Password: WideString;
  ChunkSize: LongInt= 0; CacheLimitBytes: Int64= 0;
  CoalesceWindowMS: Cardinal= PDF_NET_DEFAULT_COALESCE_WINDOW_MS;
  AvailabilityCallback: TPDFlibRangeAvailabilityEvent= Nil): Integer;

매개변수

SourceSize권위 있는 전체 소스 크기(바이트)
ReadCallback절대 소스 오프셋에 대한 바이트를 복사하는 콜백
PasswordPDF를 여는 데 쓰인 암호이며 암호화되지 않은 문서는 빈 문자열
ChunkSize정렬된 범위 가져오기 단위입니다. 0은 64 KiB 기본값을 선택하고 4096 미만의 값도 기본값을 사용합니다
CacheLimitBytes가장 오래 사용되지 않은 윈도우에 걸쳐 유지되는 최대 바이트입니다. 0은 4 MiB 기본값을 선택하고 한 청크 미만의 값은 한 청크로 올려집니다
CoalesceWindowMS각 절대 읽기의 첫 캐시되지 않은 청크에 대한 수집 윈도우입니다. 2밀리초가 기본값이며 0은 초기 지연을 비활성화합니다
AvailabilityCallback점진적 저장소에 이미 있는 바이트 범위에 대한 선택적인 비-페치 검사

반환 값

0소스 인수가 잘못되었거나 PDF를 로드할 수 없었습니다. LastErrorCode를 확인하십시오
1문서가 로드되고 선택되었습니다

비고

읽기 콜백은 절대 0기반 오프셋을 받고, Count바이트를 넘어 Buffer에 써서는 안 되며 쓴 바이트 수를 반환해야 합니다

페이지 렌더링, 추출, 저장이 나중에 추가 범위를 요구할 수 있으므로 콜백 대상과 그 뒷받침 저장소는 로드된 문서가 닫힐 때까지 유효해야 합니다

호출은 동기적이며 순서대로 오지 않을 수 있습니다. 소스의 물리적 끝에서는 짧은 결과가 받아들여지고, 뜻밖의 0 결과는 로딩이나 현재 지연 작업을 실패시킵니다

AvailabilityCallback가 할당되어 있으면, 전송이나 블로킹 I/O 없이 요청한 범위 전체를 즉시 읽을 수 있을 때만 0이 아닌 값을 반환하십시오

캐시된 범위는 콜백 결과와 무관하게 사용 가능하며, Nil 콜백은 모든 유효 소스 범위를 사용 가능으로 취급해 동기 동작을 유지합니다

정렬된 청크는 겹치는 읽기에 대한 중복 전송을 피하고, 바이트 예산은 문서 크기와 무관하게 보존 페이로드를 한정합니다

지연 객체·세그먼트 읽기는 절대 오프셋을 쓰므로, 동시 작업이 같은 청크 요청을 공유하고 인접 대기 청크를 위치 스트림 커서를 바꾸지 않고 병합합니다

소스 콜백은 직렬화되며 같은 범위 스트림에서 재귀적으로 읽어서는 안 됩니다

빠지다고 보고된 범위를 읽지 않고 페이지, 폼, 간접 객체 의존을 시험하려면 GetRangeSourceDataAvailability를 사용하십시오

활성 캐시를 관찰하거나 바꾸려면 GetRangeSourceCacheInfo, SetRangeSourceCacheLimit, ClearRangeSourceCache를 사용하십시오

라이브러리는 자기 내부의 시크 가능한 범위 스트림은 소유하지만 콜백 대상이나 그 뒷받침 저장소는 소유하지 않습니다