PurgeUnusedResources

문서 조작, 최적화

설명

선택한 페이지 콘텐츠 레이어와 전이적 리소스 종속성을 검색한 다음 해당 리소스 범위에서 참조되지 않는 명명된 리소스를 제거합니다

기본 옵션은 Form XObject, 타일링 패턴, Type 3 글리프, 주석 모양 및 소프트 마스크 그룹을 재귀적으로 처리하고, 이미지와 기타 리소스에서 참조하는 색 공간을 유지하며, 더 이상 사용되지 않는 /ProcSet 배열과 빈 리소스 범주를 제거하고, 정리 작업으로 인해 도달할 수 없게 된 간접 객체를 수집함

구문

Delphi

Function TPDFlib.PurgeUnusedResources(Const PageRange: WideString= '';
  Options: Integer= PDF_RESOURCE_PURGE_DEFAULT): Integer; Overload;
Function TPDFlib.PurgeUnusedResources(Const PageRange: WideString;
  Options: Integer; Out Stats: TPDFlibResourcePurgeStats): Integer; Overload;

매개변수

PageRange다른 페이지 범위 API와 같은 구문을 사용하는 1부터 시작하는 페이지 범위이며, 빈 문자열이면 모든 페이지를 나타냅니다
Options리소스 제거 옵션 상수의 비트 단위 조합
Stats검색, 안전, 제거 및 고아 객체 카운터를 받습니다

옵션

PDF_RESOURCE_PURGE_RECURSE_FORMS참조된 Form XObject를 스캔하고 자체 또는 상속된 리소스 범위를 준수합니다
PDF_RESOURCE_PURGE_REMOVE_PROCSET더 이상 사용되지 않는 /ProcSet 배열을 제거합니다
PDF_RESOURCE_PURGE_REMOVE_EMPTY빈 리소스 범주 사전을 제거합니다
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN콘텐츠 스트림에 알 수 없는 연산자가 있을 때 정리할 수 있게 합니다
PDF_RESOURCE_PURGE_DRY_RUN문서를 변경하지 않고 제거 가능한 명명 항목을 보고합니다
PDF_RESOURCE_PURGE_GARBAGE_COLLECT라이브 정리 후 도달할 수 없게 된 간접 객체를 수집합니다
PDF_RESOURCE_PURGE_RECURSE_PATTERNS참조된 타일링 패턴의 콘텐츠와 독립 리소스 범위를 검사합니다
PDF_RESOURCE_PURGE_RECURSE_TYPE3글꼴 리소스 범위를 사용하여 참조된 Type 3 글꼴의 모든 CharProc 스트림을 검색합니다
PDF_RESOURCE_PURGE_RECURSE_APPEARANCES일반, 롤오버, 누름 및 이름 있는 상태 주석 모양 스트림을 스캔합니다
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSExtGState 소프트 마스크 사전에서 참조하는 투명도 그룹 스트림을 검색합니다
PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES중첩 종속성을 찾기 위해 이미지 XObject, 명시적 마스크, 소프트 마스크 이미지 및 대체 이미지를 검사합니다
PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES패턴, Type 3, 모양, 소프트 마스크 및 이미지 종속성 분석을 결합합니다
PDF_RESOURCE_PURGE_DEFAULT모든 종속성 분석, Form 재귀, ProcSet 제거, 빈 범주 제거 및 가비지 컬렉션을 결합합니다

반환 값

Live cleanup제거된 이름 있는 리소스 항목 수
Dry run제거할 수 있는 명명된 리소스 항목의 수
0제거 가능한 명명된 항목, 선택한 페이지 또는 불러온 문서가 없음

비고

스캔은 Font, XObject, ExtGState, ColorSpace, Pattern, Shading 및 Properties 참조를 인식하며 인라인 이미지 사전의 사용자 지정 색 공간과 리소스 객체가 포함하는 간접 종속성도 다룹니다

종속성 폐쇄는 이미지 및 음영 색 공간, Indexed 기반, Separation 및 DeviceN 대체 공간, Pattern 기반 공간, ICCBased 대체 공간, 타일링 패턴 콘텐츠, 모든 Type 3 CharProcs, 주석 모양 상태, ExtGState 소프트 마스크 그룹, 이미지 마스크, 소프트 마스크 이미지 및 대체 이미지를 다룹니다

PDF 이름은 대소문자를 구분해 일치시키며 정리 전에 선택한 각 페이지의 모든 콘텐츠 레이어를 결합합니다

PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN을 설정하지 않는 한 잘못된 스트림과 알 수 없는 연산자는 전체 리소스 범위를 보존합니다

공유 및 상속된 리소스 사전은 변경 전에 복사되므로 정리 작업이 선택한 페이지, Form, 패턴, Type 3 글꼴, 모양 또는 소프트 마스크 그룹에만 적용됨

반복되는 스트림과 종속성 항목은 캐시된 구문 분석 결과를 재사용하며, 깊이 제한과 활성 스트림 추적은 잘못된 리소스 순환을 종료합니다

Abort를 OnProgress 처리기에서 호출하여 취소할 수 있음

예제

var
  Stats: TPDFlibResourcePurgeStats;
  Removed: Integer;
begin
  Removed:= PDF.PurgeUnusedResources('1-20',
    PDF_RESOURCE_PURGE_DEFAULT, Stats);
  PDF.SaveToFile('optimised.pdf');
end;

참고 항목

TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort