PDFium Delphi Component Docs

Avgränsade hjälpfunktioner för svartningsgeometri

FPdfRedaction tillhandahåller konservativ källinspektion och geometrioperationer som TPdf.SaveAsRedacted använder; metoden på hög nivå tillhandahåller transaktionen, annoteringsbearbetning, opaka överlägg, innehållsregenerering, rensning och resursbeskärning

Hjälpfunktionerna muterar nativa objekter i anroparens isolerade transaktionskopia och kastar EPdfRedactionGeometry vid geometri som inte stöds eller förbrukade budgetar; de utför inte en komplett säker export på egen hand

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

Koordinater och geometri som stöds

Alla svartningsrektanglar och kurvtoleranser använder PDF-användarrymdpunkter; banpunkter transformeras till sidrymd före klippning, och ObjectIndex är det ursprungliga nollbaserade nativa sidobjektindexet som används för att bevara målningens ordning

Utvidgning och partiell geometri avvisar transparens eller blandningstillstånd, barnkategorier som inte stöds, singulära matriser, mönsterfyllnader och komplexa eller icke-redundanta klippbanor; ett stött redundant rektangulärt klipp måste innehålla objektets fullständiga gränser

Alternativ och kumulativ rapport

AlternativStandardBetydelse
MaxFormDepth32Utvidgningsdjup för kapslade formulär
MaxObjects1000000Gränser för siduppräkning och kumulativa utvidgade barn
MaxPathSegments262144Indatasegment per bana och kumulativa genererade banpunkter
MaxFragments1000000Kvarhållna rektangelregioner och kumulativa ersättningsfragment
MaxImagePixels16777216Kumulativa bearbetade avkodade bildpixlar
MaxGeometryOperations67108864Kumulativt geometri- och pixelsnittsarbete
CurveTolerance0.01Tolerans för kubisk planering i PDF-punkter

Initiera alternativen med TPdfRedactionGeometryOptions.Default och nollställ rapporten en gång före en transaktion; behåll samma rapport över hjälparanropen så att genererade punkter, bildpixlar, fragment och operationsbudgetar ackumuleras

ExpandedFormCount och ScannedChildCount beskriver utvidgningen; antalet besökta inkluderar rot-Form-instanser utöver barn; ClippedPathCount, FlattenedCurveCount och GeneratedPointCount beskriver banarbetet, inklusive mellanliggande klipppunkter; MaskedImageCount, ScannedPixelCount, MaskedPixelCount och PixelIntersectionTestCount beskriver bildarbetet

FragmentCount räknar ersättningsobjekt, inte polygonkonturer eller pixlar, och GeometryOperationCount ackumulerar avgränsat hjälpararbete; en rapport som lämnats av ett undantag kan beskriva partiellt arbete på den kasserade transaktionskopian

Källinspektion och exportgräns

ValidateDetailedRedactionSource inspekterar aktiva objekter och avkodat innehåll före mutering; TPdf.SaveAsRedacted anropar den för varje profil, inklusive borttagning av hela objekt och den enklare partiska profilen

Den nuvarande profilen bygger inte om Tagged PDF-struktur, bevarar inte godtycklig transparens, stödjer inte godtyckliga streck eller klippning, och lovar inte förlustfri bevarande av kodade bilder; säker utdata kräver borttagning av ursprungliga strömmar och oanvända resurser efter regenerering, så som TPdf.SaveAsRedacted gör

Direkta anropare måste tillhandahålla en isolerad dokumentkopia, validera nativa kapabiliteter och ändliga positiva budgetar, kassera kopian vid fel, återskapa ändrat sidinnehåll samt fullfölja rensning och resursbeskärning före export

See Also

TPdf.SaveAsRedacted, TPdf.SaveAsSanitised, FPdfCompress