PDFium Component Docs

Ograniczone pomocnicze API geometrii redakcji

FPdfRedaction dostarcza konserwatywną inspekcję źródła i operacje geometryczne używane przez TPdf.SaveAsRedacted; metoda wysokiego poziomu dostarcza transakcję, przetwarzanie adnotacji, nieprzezroczyste nakładki, regenerację zawartości, sanearyzację i przycinanie zasobów

Helpery modyfikują obiekty natywne w izolowanej kopii transakcji wywołującego i podnoszą EPdfRedactionGeometry przy nieobsługiwanej geometrii lub wyczerpanych budżetach; same nie wykonują kompletnego bezpiecznego eksportu

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

Wszystkie prostokąty redakcji i tolerancje krzywych używają punktów przestrzeni użytkownika PDF; punkty ścieżek są transformowane do przestrzeni strony przed przycinaniem, a ObjectIndex to oryginalny indeks natywnego obiektu strony liczony od zera, używany do zachowania kolejności malowania

Rozwinięcie i częściowa geometria odrzucają przezroczystość lub stany mieszania, nieobsługiwane typy dzieci, macierze osobliwe, wypełnienia wzorami oraz złożone lub nienadmiarowe ścieżki przycinania; obsługiwana nadmiarowa prostokątna klip musi zawierać kompletne granice obiektu

Options and cumulative report

OpcjaDomyślnieZnaczenie
MaxFormDepth32Głębokość rozwijania zagnieżdżonych Form
MaxObjects1000000Limity enumeracji stron i kumulatywnych rozwiniętych dzieci
MaxPathSegments262144Segmenty wejściowe na ścieżkę i kumulatywne wygenerowane punkty ścieżek
MaxFragments1000000Zachowane regiony prostokątne i kumulatywne fragmenty zastępcze
MaxImagePixels16777216Kumulatywna liczba przetworzonych zdekodowanych pikseli obrazów
MaxGeometryOperations67108864Kumulatywna praca geometryczna i testy przecięć pikseli
CurveTolerance0.01Tolerancja spłaszczania sześciennego w punktach PDF

Zainicjalizuj opcje przez TPdfRedactionGeometryOptions.Default i wyzeruj raport raz przed transakcją; trzymaj ten sam raport między wywołaniami helperów, aby wygenerowane punkty, piksele obrazów, fragmenty i budżety operacji się kumulowały

ExpandedFormCount i ScannedChildCount opisują rozwinięcie; licznik odwiedzin obejmuje instancje Form głównych oraz dzieci; ClippedPathCount, FlattenedCurveCount i GeneratedPointCount opisują pracę na ścieżkach, włącznie z pośrednimi punktami przycinania; MaskedImageCount, ScannedPixelCount, MaskedPixelCount i PixelIntersectionTestCount opisują pracę na obrazach

FragmentCount liczy obiekty zastępcze, a nie kontury wielokątów czy piksele, a GeometryOperationCount akumuluje ograniczoną pracę helperów; raport pozostawiony przez wyjątek może opisywać częściową pracę na odrzuconej kopii transakcji

Source inspection and export boundary

ValidateDetailedRedactionSource bada aktywne obiekty i zdekodowaną zawartość przed modyfikacją; TPdf.SaveAsRedacted wywołuje go dla każdego profilu, włącznie z usuwaniem całych obiektów i prostszym profilem częściowym

Obecny profil nie przebudowuje struktury Tagged PDF, nie zachowuje dowolnej przezroczystości, nie obsługuje dowolnych konturów ani przycinania i nie obiecuje bezstratnego zachowania zakodowanych obrazów; bezpieczne wyjście wymaga usunięcia oryginalnych strumieni i nieużywanych zasobów po regeneracji, co wykonuje TPdf.SaveAsRedacted

Bezpośredni wywołujący muszą dostarczyć izolowaną kopię dokumentu, zwalidować natywne możliwości i skończone dodatnie budżety, odrzucić kopię przy niepowodzeniu, zregenerować zawartość zmodyfikowanych stron i dokończyć sanearyzację oraz przycinanie zasobów przed eksportem

See Also

TPdf.SaveAsRedacted, TPdf.SaveAsSanitised, FPdfCompress