PDFium Delphi Component Docs

SaveAsRedacted metod

Component: TPdf  ·  Unit: PDFium
Tillämpar PDF-svartningsannoteringar på en isolerad ögonblicksbild och skriver ett rent resultat i en enda revision utan att ändra det inlästa dokumentet

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 fångar det aktuella dokumentet i en isolerad slumpåtkomst-ögonblicksbild, öppnar den ögonblicksbilden som en separat TPdf och bearbetar varje /Redact-annoteringsrektangel

De valda standardalternativen aktiverar både PreservePartialObjects och PreserveComplexObjects för att bevara säker geometri som stöds; denna avgränsade profil bygger om text från bevarade teckenfragment, klipper solida fyllda sökvägar och rensar överlappande pixlar i affina bilder

När någon svartningsannotering finns expanderar den detaljerade profilen varje Form XObject-instans på varje sida, inklusive osvartade sidor, innan svartningarna tillämpas; instanstransformer komponeras och ursprungliga delade Form-strömmar kan därefter tas bort genom resursrensning

Sätt PreservePartialObjects := False för att ta bort hela överlappande objekt, eller behåll det aktiverat och sätt PreserveComplexObjects := False för att använda den enklare fragmenteringsprofilen för text, axelriktade rektanglar och axelriktade bilder; källsäkerhetskontroller gäller för alla tre profilerna

Metoden tar bort alla svartningsannoteringar, tar eventuellt bort andra överlappande annoteringar, tar bort bilageannoteringar på svartade sidor, raderar inbyggda inbäddade bilagor och kör den sanerade omskrivningen med katalogens /AF, aktivt innehåll, formulär, metadata och onåbara objekt borttagna

Efter att sidinnehållet regenererats söker en exakt resursrensning igenom sid-, Form XObject-, mönster-, utseende-, ärvda- och nästlade resursområden och tar bara bort oanvända namn innan onåbara objekt kastas

Utdata har en enda ren revision utan tidigare dokumentrevisioner, medan det inlästa källdokumentet förblir oförändrat; källsemantik som inte stöds eller detaljerad geometri som inte stöds avbryter åtgärden i stället för att ge ett delvis svartat resultat

Options

Alternativen för Form, sökväg, bild, geometri och tolerans ovan valideras och används av den detaljerade profilen; de höjer inte de oberoende budgetarna för källinspektion

Report

TPdfRedactionReport returnerar RedactionCount, RedactedPageCount, ScannedObjectCount, RemovedObjectCount, RemovedAnnotationCount, RemovedAttachmentCount, OverlayCount, SplitTextObjectCount, SplitPathObjectCount, SplitImageObjectCount, PreservedFragmentCount, byte-antalen, de nästlade SanitiseReport och ResourcePruneReport, Succeeded och ErrorMessage

Detaljerat arbete tillför ExpandedFormCount, ScannedFormChildCount, FlattenedCurveCount, GeneratedPathPointCount, MaskedImageCount, ScannedImagePixelCount, MaskedImagePixelCount, PixelIntersectionTestCount och GeometryOperationCount; CurveTolerancePdfPoints registrerar den konfigurerade toleransen efter lyckad bearbetning

ScannedFormChildCount räknar nativa objekt som besöks under expansionen, inklusive rot-Form-instanser, och GeneratedPathPointCount omfattar mellanliggande klipppunkter likaväl som utplattade kurvpunkter

MaskedImagePixelCount räknar pixlar vars fullständiga färg- och alfasampel rensades, medan PreservedFragmentCount räknar ersättningsobjekt snarare än enskilda behållna pixlar eller polygonkonturer; bearbetningsräknare vid fel kan vara partiella och innebär ingen committad utdata

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