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 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
FillColor — dekkende vervangkleur, standaard clBlackRemoveIntersectingAnnotations — verwijdert niet-redactie-annotaties waarvan de rechthoeken een redactierechthoek overlappen, standaard TrueMaxPageObjects — maximum aantal top-level paginaobjecten dat over geredigeerde pagina's wordt gescand, standaard 1000000PreservePartialObjects — behoudt ondersteunde niet-overlappende tekst-, pad- en beeldfragmenten, standaard TrueMaxSplitObjects — maximum aantal veilige fragmenten dat tijdens de bewerking wordt aangemaakt, standaard 1000000PreserveComplexObjects — schakelt begrensde Form-expansie, bijsnijden van effen gevulde paden en het wissen van affiene afbeeldingspixels in wanneer PreservePartialObjects ook aanstaat, standaard TrueMaxFormDepth — maximale diepte van geneste Form-expansie, standaard 32, toegestaan bereik 1..64MaxPathPoints — begrenst segmenten in een getroffen pad en de cumulatief gegenereerde padpunten, standaard 262144, toegestaan bereik 1..1000000MaxImagePixels — cumulatief gedecodeerde pixels die voor gedetailleerde afbeeldingsvervangingen worden verwerkt, standaard 16777216, toegestaan bereik 1..67108864MaxGeometryOperations — cumulatief gedetailleerd geometriewerk, inclusief annotatie- en tekstscans, padonderverdeling en -bijsnijding en pixelintersectietests, standaard 67108864, toegestaan bereik 1..1000000000CurveTolerancePdfPoints — tolerantie voor cubic-flattening in de paginaruimte, standaard 0.01, toegestaan eindig bereik 0.0001..0.1; padsneden breiden uit met deze tolerantie plus 0.001 PDF-punten, zodat een smalle extra veilige marge kan worden verwijderdDe bovenstaande Form-, pad-, afbeelding-, geometrie- en tolerantieopties worden gevalideerd en door het gedetailleerde profiel gebruikt; ze verhogen de onafhankelijke broninspectiebudgetten niet
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
0.001 PDF-punten is uitgebreid; zowel RGB als alpha worden op nul gezet, waarna een dekkende FillColor-overlay de redactierechthoek bedekt/ActualText- of /Alt-vervangingsdata, XFA en optional-content-laagsemantiek inclusief /OCProperties, /OCG en /OCMD af; deze methode bouwt geen logische structuur opnieuw op en bewaart die verborgen semantiek nietTr-operanden en scn/SCN-pattern- of special-color-space-verf af; ondersteunde geïnspecteerde contentstreams zijn ongefilterd of gebruiken één enkele benoemde /FlateDecode-filter256 MiB, individuele actieve objectbodies tot 64 MiB, totale actieve bodies tot 256 MiB, gedecodeerde object-streams tot 64 MiB elk en 256 MiB totaal, en objectslots tot 1000000; geïnspecteerde contentdecodering heeft extra limieten van 32 MiB per stream en 64 MiB totaal/AF, de /Names-boom, native embedded attachments en file-attachment-annotaties op geredigeerde pagina's worden verwijderd; willekeurige associated-file-ingangen die dieper in ongerelateerde structuurwoordenboeken zitten vallen buiten de expliciete garantie van deze methode/Redact-annotaties zijn levert nog steeds het gesaniseerde single-revision-securityprofiel op
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;