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 erfasst das aktuelle Dokument in einem isolierten Random-Access-Snapshot, öffnet diesen Snapshot als separates TPdf und verarbeitet jedes /Redact-Annotationsrechteck
Standardmäßig aktivieren die Optionen PreservePartialObjects und PreserveComplexObjects für unterstützte sichere Geometrie; das begrenzte Profil rekonstruiert Text aus erhaltenen Zeichenfragmenten, clippt einfarbig gefüllte Pfade und löscht getroffene Pixel affiner Bilder
Sobald eine Schwärzungsannotation existiert, expandiert das detaillierte Profil jede Form-XObject-Instanz auf jeder Seite, auch ungeschwärzten; Instanztransformationen werden kombiniert und ursprüngliche gemeinsame Formstreams anschließend über Ressourcenbereinigung entfernbar
PreservePartialObjects := False entfernt ganze getroffene Objekte; mit aktiviertem Teilerhalt und PreserveComplexObjects := False verwenden Sie das einfachere Text-/achsenparallele Rechteck-/Bildfragmentierungsprofil; Quellsicherheitsprüfungen gelten für alle drei
Die Methode entfernt alle Schwärzungsannotationen, optional andere getroffene Annotationen, Dateiattachments auf geschwärzten Seiten und native eingebettete Anhänge; die bereinigte Neuschreibung entfernt Katalog-/AF, aktive Inhalte, Formulare, Metadaten und unerreichbare Objekte
Nach dem Neuaufbau des Seiteninhalts durchsucht ein präzises Ressourcen-Ausdünnen Seiten-, Form-XObject-, Pattern-, Appearance-, geerbte und verschachtelte Ressourcenbereiche und entfernt nur ungenutzte Namen, bevor nicht erreichbare Objekte verworfen werden
Die Ausgabe hat eine saubere Revision ohne frühere Revisionen; das geladene Quelldokument bleibt unverändert; nicht unterstützte Quellsemantik oder detaillierte Geometrie bricht ab, statt nur teilweise geschwärzte Ausgabe zu liefern
FillColor — deckende Ersatzfarbe, standardmäßig clBlackRemoveIntersectingAnnotations — entfernt Nicht-Redaction-Annotationen, deren Rechtecke ein Schwarzzeichnungsrechteck überlappen, Standard TrueMaxPageObjects — maximale Anzahl der über geschwärzte Seiten hinweg gescannten Top-Level-Seitenobjekte, Standard 1000000PreservePartialObjects — behält unterstützte, sich nicht schneidende Text-, Pfad- und Bildfragmente, Standard TrueMaxSplitObjects — maximale Anzahl der über den Vorgang erzeugten sicheren Fragmente, Standard 1000000PreserveComplexObjects — aktiviert begrenzte Formexpansion, Clipping einfarbig gefüllter Pfade und affine Bildpixellöschung bei aktiviertem PreservePartialObjects; Standard TrueMaxFormDepth — maximale verschachtelte Formexpansion, Standard 32, Bereich 1..64MaxPathPoints — begrenzt Segmente betroffener Pfade und kumulierte erzeugte Punkte, Standard 262144, Bereich 1..1000000MaxImagePixels — kumulierte decodierte Pixel detaillierter Bildersetzungen, Standard 16777216, Bereich 1..67108864MaxGeometryOperations — kumulierte detaillierte Geometriearbeit mit Annotation-/Textscans, Pfadunterteilung/-clipping und Pixelintersektionen; Standard 67108864, Bereich 1..1000000000CurveTolerancePdfPoints — kubische Abflachungstoleranz im Seitenraum, Standard 0.01, endlicher Bereich 0.0001..0.1; Schnitte erweitern sich um Toleranz plus 0.001 PDF-Punkte und können einen schmalen sicheren Zusatzrand entfernenDiese Form-, Pfad-, Bild-, Geometrie- und Toleranzoptionen werden für das detaillierte Profil geprüft und genutzt; sie erhöhen keine unabhängigen Quellprüfbudgets
TPdfRedactionReport liefert RedactionCount, RedactedPageCount, ScannedObjectCount, RemovedObjectCount, RemovedAnnotationCount, RemovedAttachmentCount, OverlayCount, SplitTextObjectCount, SplitPathObjectCount, SplitImageObjectCount, PreservedFragmentCount, die Byte-Zählungen, die verschachtelten SanitiseReport- und ResourcePruneReport-Berichte, Succeeded und ErrorMessage
Detaillierte Verarbeitung ergänzt ExpandedFormCount, ScannedFormChildCount, FlattenedCurveCount, GeneratedPathPointCount, MaskedImageCount, ScannedImagePixelCount, MaskedImagePixelCount, PixelIntersectionTestCount und GeometryOperationCount; CurveTolerancePdfPoints erfasst die konfigurierte Toleranz nach Erfolg
ScannedFormChildCount zählt besuchte native Objekte einschließlich Wurzel-Forminstanzen; GeneratedPathPointCount enthält Clippingzwischenpunkte und abgeflachte Kurvenpunkte
MaskedImagePixelCount zählt vollständig gelöschte Farb-/Alphasamples; PreservedFragmentCount zählt Ersatzobjekte, keine einzelnen Pixel oder Konturen; Fehlerzähler können partiell sein und beweisen keinen Commit
0.001 PDF-Punkte erweitertes Rechteck berührt; RGB und Alpha werden genullt, danach deckt ein opakes FillColor-Overlay das Rechteck/ActualText//Alt-Ersatzdaten, XFA und optionale Ebenensemantik einschließlich /OCProperties, /OCG und /OCMD ab; logische Struktur und versteckte Semantik werden nicht rekonstruiert oder erhaltenTr-Operanden und scn/SCN-Muster-/Sonderfarbraumalerei ab; geprüfte Streams sind ungefiltert oder haben einen einzelnen benannten /FlateDecode-Filter256 MiB, aktive Einzelkörper auf 64 MiB, Gesamtkörper auf 256 MiB, decodierte Objektstreams auf je 64 MiB und zusammen 256 MiB, Objektplätze auf 1000000; Inhaltsdecodierung zusätzlich auf 32 MiB je Stream und 64 MiB insgesamt/AF, der /Names-Baum, native eingebettete Anhänge und Dateianhang-Annotationen auf geschwärzten Seiten werden entfernt; beliebige, in nicht verwandten Strukturwörterbüchern verschachtelte Associated-File-Einträge liegen außerhalb der expliziten Garantie dieser Methode/Redact-Annotationen erzeugt die Methode das bereinigte Sicherheitsprofil mit einer Revision
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;