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_MASKS | ExtGState 소프트 마스크 사전에서 참조하는 투명도 그룹 스트림을 검색합니다 |
| 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