PDFium Delphi Component Docs

Begrænsede geometrihjælpere til redaction

FPdfRedaction leverer konservativ kildeinspektion og geometrioperationer til TPdf.SaveAsRedacted; metoden på højt niveau sørger for transaktionen, annotationer, opake overlays, regenerering af indhold, sanitization og resource pruning

Hjælperne ændrer native objekter i kalderens isolerede transaktionskopi og rejser EPdfRedactionGeometry ved ikke-understøttet geometri eller opbrugte grænser; de udfører ikke alene en komplet sikker eksport

Offentlige deklarationer

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);

Koordinater og understøttet geometri

Alle redaction-rektangler og kurvetolerancer bruger PDF user-space points; path-punkter transformeres til siderummet før clipping, og ObjectIndex er det originale nulbaserede native sideobjektindeks, som bevarer tegningsrækkefølgen

Ekspansion og delvis geometri afviser transparency- eller blend-states, ikke-understøttede child-typer, singulære matricer, patterned fills og komplekse eller ikke-redundante clip paths; en understøttet redundant rektangulær clip skal indeholde hele objektets bounds

Indstillinger og samlet rapport

IndstillingStandardBetydning
MaxFormDepth32Ekspansionsdybde for indlejrede Forms
MaxObjects1000000Grænser for sideenumeration og samlet antal ekspanderede children
MaxPathSegments262144Inputsegments pr. path og samlet antal genererede path-punkter
MaxFragments1000000Bevarede rektangelregioner og samlet antal erstatningsfragmenter
MaxImagePixels16777216Samlet antal behandlede afkodede billedpixels
MaxGeometryOperations67108864Samlet geometriarbejde og pixel-intersection-tests
CurveTolerance0.01Cubic flattening-tolerance i PDF points

Initialisér options med TPdfRedactionGeometryOptions.Default og nulstil rapporten én gang før transaktionen; brug samme rapport på tværs af helper-kald, så genererede punkter, billedpixels, fragmenter og operationsbudgetter akkumuleres

ExpandedFormCount og ScannedChildCount beskriver ekspansion; visited count omfatter både root Form-instanser og children; ClippedPathCount, FlattenedCurveCount og GeneratedPointCount beskriver path-arbejde inklusive mellemliggende clipping-punkter; MaskedImageCount, ScannedPixelCount, MaskedPixelCount og PixelIntersectionTestCount beskriver billedarbejde

FragmentCount tæller erstatningsobjekter, ikke polygonkonturer eller pixels, og GeometryOperationCount akkumulerer begrænset helper-arbejde; en rapport efter exception kan beskrive delvist arbejde på den kasserede transaktionskopi

Kildeinspektion og eksportgrænse

ValidateDetailedRedactionSource undersøger aktive objekter og afkodet indhold før ændringer; TPdf.SaveAsRedacted kalder den for alle profiler, også fuld objektfjernelse og den enklere delvise profil

Den aktuelle profil genopbygger ikke Tagged PDF-struktur, bevarer ikke vilkårlig transparency, understøtter ikke vilkårlige strokes eller clipping og lover ikke lossless bevarelse af encoded images; sikkert output kræver fjernelse af originale streams og ubrugte ressourcer efter regenerering, som TPdf.SaveAsRedacted udfører

Direkte kaldere skal levere en isoleret dokumentkopi, kontrollere native capabilities og endelige positive grænser, kassere kopien ved fejl, regenerere ændret sideindhold og fuldføre sanitization og resource pruning før eksport

Se også

TPdf.SaveAsRedacted, TPdf.SaveAsSanitised, FPdfCompress