PDFium Component Docs

SaveAsRedacted methode

Component: TPdf  ·  Unit: PDFium
Past PDF-redactie-annotaties toe op een geïsoleerde snapshot en schrijft een schoon single-revision-resultaat weg zonder het geladen document te wijzigen

Syntax

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;

Description

SaveAsRedacted legt het huidige document vast in een geïsoleerde random-access-snapshot, opent die snapshot als aparte TPdf en verwerkt elke /Redact-annotatierechthoek

De standaardopties schakelen zowel PreservePartialObjects als PreserveComplexObjects in om ondersteunde veilige geometrie te behouden; dit begrensde profiel bouwt tekst opnieuw op uit behouden tekenfragmenten, snijdt effen gevulde paden bij en wist overlappende pixels in affiene afbeeldingen

Zodra er een redactie-annotatie bestaat, breidt het gedetailleerde profiel elke Form XObject-instantie op elke pagina uit, ook op niet-geredigeerde pagina's, voordat redacties worden toegepast; instantietransformaties worden samengesteld en originele gedeelde Form-streams kunnen daarna door resource pruning worden verwijderd

Zet PreservePartialObjects := False om hele overlappende objecten te verwijderen, of houd het ingeschakeld en zet PreserveComplexObjects := False om het eenvoudiger profiel met tekst-, rechthoek- en afbeeldingfragmentatie te gebruiken; bronveiligheidscontroles gelden voor alle drie de profielen

De methode verwijdert alle redactie-annotaties, verwijdert optioneel andere overlappende annotaties, verwijdert file-attachment-annotaties op geredigeerde pagina's, wist native embedded attachments en voert de gesaniseerde herschrijving uit waarbij catalog /AF, active content, formulieren, metadata en onbereikbare objecten zijn gestript

Nadat de paginacontent opnieuw is gegenereerd, scant nauwkeurige resource pruning de resource-scopes van pagina's, Form XObjects, patterns, appearances, overgeërfde en geneste scopes en verwijdert alleen ongebruikte namen voordat onbereikbare objecten worden weggegooid

De uitvoer heeft één schone revisie zonder eerdere documentrevisies, terwijl het geladen brondocument ongewijzigd blijft; niet-ondersteunde bronsemantiek of niet-ondersteunde gedetailleerde geometrie breekt de bewerking af in plaats van een gedeeltelijk geredigeerd resultaat op te leveren

Options

De bovenstaande Form-, pad-, afbeelding-, geometrie- en tolerantieopties worden gevalideerd en door het gedetailleerde profiel gebruikt; ze verhogen de onafhankelijke broninspectiebudgetten niet

Report

TPdfRedactionReport geeft RedactionCount, RedactedPageCount, ScannedObjectCount, RemovedObjectCount, RemovedAnnotationCount, RemovedAttachmentCount, OverlayCount, SplitTextObjectCount, SplitPathObjectCount, SplitImageObjectCount, PreservedFragmentCount, de byte-aantallen, geneste SanitiseReport en ResourcePruneReport, Succeeded en ErrorMessage terug

Gedetailleerd werk voegt ExpandedFormCount, ScannedFormChildCount, FlattenedCurveCount, GeneratedPathPointCount, MaskedImageCount, ScannedImagePixelCount, MaskedImagePixelCount, PixelIntersectionTestCount en GeometryOperationCount toe; CurveTolerancePdfPoints legt de geconfigureerde tolerantie vast na geslaagde verwerking

ScannedFormChildCount telt native objecten die tijdens expansie worden bezocht, inclusief root-Form-instanties, en GeneratedPathPointCount omvat tussenliggende bijsnijdpunten naast afgeplatte curvepunten

MaskedImagePixelCount telt pixels waarvan de volledige kleur- en alphasamples zijn gewist, terwijl PreservedFragmentCount vervangende objecten telt in plaats van individuele behouden pixels of polygooncontouren; verwerkingstellers bij een fout kunnen gedeeltelijk zijn en impliceren geen gecommitte uitvoer

Security boundary

Example

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;

See Also

SaveAsSanitised, SaveAsReachable, CreateAnnotation