PDFium Delphi Component Docs

SaveAsRedacted 메서드

컴포넌트: TPdf  ·  유닛: PDFium
PDF 편집 주석을 분리된 스냅샷에 적용하고 로드된 문서를 수정하지 않고 클린 단일 리비전 결과를 작성합니다

구문

function SaveAsRedacted(Stream: TStream;
  const Options: TPdfRedactionOptions;
  out Report: TPdfRedactionReport): Boolean; overload;

function SaveAsRedacted(const FileName: string;
  const Options: TPdfRedactionOptions;
  out Report: TPdfRedactionReport): Boolean; overload;

설명

SaveAsRedacted는 현재 문서를 분리된 랜덤 액세스 스냅샷으로 캡처하고 그 스냅샷을 별개의 TPdf로 연 뒤 모든 /Redact 주석 사각형을 처리합니다

기본 옵션은 PreservePartialObjects와 PreserveComplexObjects를 모두 활성화해 지원되는 안전한 지오메트리를 남깁니다. 이 제한 프로파일은 유지한 문자 조각으로 텍스트를 다시 만들고 단색 채우기 패스를 자르며 아핀 이미지의 교차 픽셀을 지웁니다

영구 삭제 주석이 하나라도 있으면 상세 프로파일은 삭제 대상이 아닌 페이지까지 포함해 모든 페이지의 Form XObject 인스턴스를 먼저 펼칩니다. 인스턴스 변환을 합성하고 원래 공유 Form 스트림은 이후 리소스 정리로 제거할 수 있습니다

PreservePartialObjects := False는 교차하는 객체 전체를 제거합니다. 활성화한 채 PreserveComplexObjects := False로 설정하면 간단한 텍스트, 축에 정렬된 사각형/이미지 분할 프로파일을 사용합니다. 원본 안전 검사는 세 프로파일 모두에 적용됩니다

모든 영구 삭제 주석을 제거하고 옵션에 따라 다른 교차 주석도 제거합니다. 삭제 페이지의 file-attachment 주석과 네이티브 첨부 파일을 삭제한 뒤 catalog /AF, 활성 콘텐츠, 폼, 메타데이터, 도달하지 않는 객체를 제외하는 정리된 재작성을 수행합니다

페이지 콘텐츠가 재생성된 뒤 정밀 리소스 가지치기가 페이지, Form XObject, 패턴, 모양, 상속, 중첩 리소스 범위를 훑으며 도달 불가능 객체를 버리기 전에 사용되지 않는 이름만 제거합니다

출력은 이전 문서 리비전이 없는 깨끗한 단일 리비전이며 로드한 원본 문서는 그대로 둡니다. 지원하지 않는 원본 의미나 상세 지오메트리는 부분 삭제 결과를 만들지 않고 작업을 중단합니다

옵션

위의 Form, 패스, 이미지, 지오메트리, 허용 오차 옵션은 상세 프로파일에서 검증하고 사용합니다. 독립적인 원본 검사 상한을 높이지 않습니다

보고서

TPdfRedactionReport는 RedactionCount, RedactedPageCount, ScannedObjectCount, RemovedObjectCount, RemovedAnnotationCount, RemovedAttachmentCount, OverlayCount, SplitTextObjectCount, SplitPathObjectCount, SplitImageObjectCount, PreservedFragmentCount, 바이트 개수들, 중첩된 SanitiseReport와 ResourcePruneReport, Succeeded, ErrorMessage를 반환합니다

상세 작업은 ExpandedFormCount, ScannedFormChildCount, FlattenedCurveCount, GeneratedPathPointCount, MaskedImageCount, ScannedImagePixelCount, MaskedImagePixelCount, PixelIntersectionTestCount, GeometryOperationCount를 추가합니다. CurveTolerancePdfPoints는 성공 후 설정한 허용 오차를 기록합니다

ScannedFormChildCount는 루트 Form 인스턴스를 포함해 펼치기 중 방문한 네이티브 객체 수입니다. GeneratedPathPointCount는 평탄화한 곡선 점과 중간 clip 점을 모두 포함합니다

MaskedImagePixelCount는 전체 색상 및 alpha 샘플을 지운 픽셀을 셉니다. PreservedFragmentCount는 개별 유지 픽셀이나 다각형 윤곽이 아닌 교체 객체 수입니다. 실패 시 처리 수는 부분적일 수 있으며 출력 commit을 뜻하지 않습니다

보안 경계

예제

var
  Options: TPdfRedactionOptions;
  Report: TPdfRedactionReport;
begin
  Options := TPdfRedactionOptions.Default;
  Options.FillColor := clBlack;
  if not Pdf1.SaveAsRedacted('C:\redacted.pdf', Options, Report) then
    raise Exception.Create(Report.ErrorMessage);
end;

관련 항목

SaveAsSanitised, SaveAsReachable, CreateAnnotation, FPdfRedaction 지오메트리 헬퍼