PDFium Delphi Component Docs

Begrensde redaction-geometriehelpers

FPdfRedaction levert conservatieve broninspectie en geometrie-operaties die TPdf.SaveAsRedacted gebruikt; de high-level methode verzorgt de transactie, annotatieverwerking, dekkende overlays, contentregeneratie, opschoning en resource-snoei

De helpers muteren native objecten in de geïsoleerde transactiekopie van de aanroeper en genereren EPdfRedactionGeometry bij niet-ondersteunde geometrie of uitgeputte budgetten; op zichzelf vormen ze geen volledige beveiligde export

Public declarations

type
  EPdfRedactionGeometry = class(Exception);
  TPdfRedactionGeometryOptions = record
    MaxFormDepth, MaxObjects, MaxPathSegments, MaxFragments: Integer;
    MaxImagePixels, MaxGeometryOperations: Int64;
    CurveTolerance: Double;
    class function Default: TPdfRedactionGeometryOptions; static;
  end;
  TPdfRedactionGeometryReport = record
    ExpandedFormCount, ScannedChildCount, ClippedPathCount: Integer;
    FlattenedCurveCount, GeneratedPointCount, FragmentCount: Integer;
    MaskedImageCount: Integer;
    ScannedPixelCount, MaskedPixelCount, PixelIntersectionTestCount: Int64;
    GeometryOperationCount: Int64;
  end;

procedure ValidateDetailedRedactionSource(Source: TStream);
procedure ValidateDetailedRedactionText(PageObject: FPDF_PAGEOBJECT);
procedure ExpandRedactionForms(Page: FPDF_PAGE;
  const Options: TPdfRedactionGeometryOptions;
  var Report: TPdfRedactionGeometryReport);
procedure ClipRedactionPath(Page: FPDF_PAGE; PageObject: FPDF_PAGEOBJECT;
  ObjectIndex: Integer; const Redactions: array of FS_RECTF;
  const Options: TPdfRedactionGeometryOptions;
  var Report: TPdfRedactionGeometryReport);
procedure MaskRedactionImage(Document: FPDF_DOCUMENT; Page: FPDF_PAGE;
  PageObject: FPDF_PAGEOBJECT; ObjectIndex: Integer;
  const Redactions: array of FS_RECTF;
  const Options: TPdfRedactionGeometryOptions;
  var Report: TPdfRedactionGeometryReport);

Coordinates and supported geometry

Alle redaction-rechthoeken en krommetoleranties gebruiken PDF-user-space-punten; padpunten worden vóór het clippen naar paginaruimte getransformeerd, en ObjectIndex is de oorspronkelijke, op 0 gebaseerde native paginaobjectindex die de tekenvolgorde bewaart

Uitklapping en partiële geometrie wijzen transparantie- of blendtoestanden, niet-ondersteunde kindtypen, singuliere matrices, patroonvullingen en complexe of niet-redundante clippaden af; een ondersteund redundant rechthoekig clip-pad moet de volledige objectbegrenzing omsluiten

Options and cumulative report

OptieStandaardBetekenis
MaxFormDepth32Uitklapdiepte van geneste Forms
MaxObjects1000000Limieten voor pagina-enumeratie en cumulatief uitgeklapte kinderen
MaxPathSegments262144Invoersegmenten per pad en cumulatief gegenereerde padpunten
MaxFragments1000000Behouden rechthoekige regio's en cumulatieve vervangingsfragmenten
MaxImagePixels16777216Cumulatief verwerkte gedecodeerde afbeeldingspixels
MaxGeometryOperations67108864Cumulatief geometrie- en pixelintersectiewerk
CurveTolerance0.01Kubische afvlakkingstolerantie in PDF-punten

Initialiseer de opties met TPdfRedactionGeometryOptions.Default en zet het rapport één keer op nul vóór een transactie; houd dezelfde rapportinstantie aan over de helperaanroepen heen, zodat gegenereerde punten, afbeeldingspixels, fragmenten en operatiebudgetten cumuleren

ExpandedFormCount en ScannedChildCount beschrijven de uitklapping; het aantal bezochte objecten telt zowel hoofdinstanties van Forms als kinderen mee; ClippedPathCount, FlattenedCurveCount en GeneratedPointCount beschrijven het padwerk, inclusief tussentijdse clippunten; MaskedImageCount, ScannedPixelCount, MaskedPixelCount en PixelIntersectionTestCount beschrijven het afbeeldingswerk

FragmentCount telt vervangingsobjecten in plaats van veelhoekcontouren of pixels, en GeometryOperationCount telt het begrensde helperwerk op; een rapport dat door een exception is achtergebleven kan partiëel werk op de weggegooide transactiekopie beschrijven

Source inspection and export boundary

ValidateDetailedRedactionSource inspecteert actieve objecten en gedecodeerde content vóór de mutatie; TPdf.SaveAsRedacted roept hem aan voor elk profiel, inclusief verwijdering van hele objecten en het eenvoudigere partiële profiel

Het huidige profiel bouwt de Tagged PDF-structuur niet opnieuw op, behoudt geen willekeurige transparantie, ondersteunt geen willekeurige lijnen of clipping en garandeert geen verliesvrije behoud van gecodeerde afbeeldingen; beveiligde uitvoer vereist verwijdering van de oorspronkelijke streams en ongebruikte resources na regeneratie, zoals TPdf.SaveAsRedacted dat doet

Directe aanroepers moeten een geïsoleerde documentkopie aanleveren, native mogelijkheden en eindige positieve budgetten valideren, de kopie bij mislukking weggooien, gewijzigde pagina-inhoud regenereren en opschoning en resource-snoei afronden vóór de export

See Also

TPdf.SaveAsRedacted, TPdf.SaveAsSanitised, FPdfCompress