PDFium Delphi Component Docs

SaveAsSanitised 메서드

컴포넌트: TPdf  ·  유닛: PDFium
한도가 적용된 카탈로그 및 트레일러 갱신으로 클린 단일 리비전 복사본을 작성한 뒤 도달 불가능 객체를 가지치기해서 고아가 된 JavaScript, 액션, 첨부, 메타데이터 본문이 파일 본문에서 사라지게 합니다

Syntax

function SaveAsSanitised(Stream: TStream;
  const Options: TPdfSanitiseOptions;
  out Report: TPdfSanitiseReport): Boolean; overload;

function SaveAsSanitised(const FileName: string;
  const Options: TPdfSanitiseOptions;
  out Report: TPdfSanitiseReport): Boolean; overload;

Description

SaveAsSanitised는 문서 카탈로그에서 활성 콘텐츠 벡터를 제거하고 그다음 선택적으로 도달 가능성 가지치기를 실행해 파일 본문에서 고아 객체를 없애는 소독된 단일 리비전 PDF 복사본을 만듭니다

2단계 파이프라인은 먼저 StripDictionaryEntries로 카탈로그 항목(/OpenAction, /AA, /Names, /AF, /AcroForm, /Metadata)을 증분 갱신으로 제거하고, 이어서 PruneUnreachablePdfStream으로 파일을 클린 클래식 리비전 하나로 재작성합니다

카탈로그와 트레일러 갱신은 저장된 PDF 전체를 하나의 바이트 배열로 만드는 대신 일반 xref 경로에서 희소 xref 조회, 1 MiB 이하 파서 창, 64 KiB 범위 복사를 사용합니다

가지치기가 활성화되면 중간 작업 공간은 SaveMemoryLimit과 SaveTemporaryDirectory의 관리를 받는 TPdfRandomAccessStore이며 그 피크 메모리와 넘침 상태는 LastSaveLargestMemoryBuffer와 LastSaveSpillCount에 포함됩니다

제거 플래그는 서로 독립입니다. TPdfSanitiseOptions.Default는 StripOpenAction, StripCatalogActions, StripNames, StripAssociatedFiles와 RemoveUnreachable 가지치기로 완전한 보안 프로파일을 켭니다. StripAcroForm과 StripMetadata는 호출자가 유지하고 싶어 할 수 있는 폼 필드와 메타데이터를 제거하므로 기본값이 False입니다

RemoveUnreachable=True일 때 출력은 항상 증분 기록이 없는 단일 리비전입니다

Parameters

Remarks

Example

var
  Options: TPdfSanitiseOptions;
  Report: TPdfSanitiseReport;
begin
  Pdf1.FileName := 'C:\Untrusted.pdf';
  Pdf1.Active := True;
  Options := TPdfSanitiseOptions.Default;
  Pdf1.SaveAsSanitised('C:\Sanitised.pdf', Options, Report);
end;

See Also

SaveAsReachable, SaveAs, AuditActiveContent