FPdfRedaction, TPdf.SaveAsRedacted tarafından kullanılan ihtiyatlı kaynak incelemesini ve geometri işlemlerini sağlar; üst düzey yöntem, işlemi, açıklama işlemeyi, opak bindirmeleri, içerik yeniden üretimini, temizliği ve kaynak budamayı sağlar
Yardımcılar, çağıranın izole işlem kopyasındaki yerel nesneleri değiştirir ve desteklenmeyen geometri veya tükenen bütçelerde EPdfRedactionGeometry fırlatır; tek başlarına eksiksiz güvenli bir dışa aktarım yapmazlar
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);
Tüm karartma dikdörtgenleri ve eğri toleransları PDF kullanıcı uzayı puanlarını kullanır; yol noktaları kırpma öncesinde sayfa uzayına dönüştürülür ve ObjectIndex, boyama sırasını korumak için kullanılan özgün sıfır tabanlı yerel sayfa nesnesi dizinidir
ExpandRedactionForms özyinelemeli olarak metin, yol ve görüntü alt öğelerini ayırır, tekillik içermeyen örnek dönüşümlerini ve yerel kırpma değerlerini bileştirir ve genişletilmiş nesneleri özgün Form konumuna ekler; her paylaşılan örneğin ayrı genişletilmesi, özgün paylaşılan Form akışını yerinde düzenlemekten kaçınırClipRedactionPath, konturu olmayan dolu dolgu yolu gerektirir, kübik bölümleri sınırlı bir alt bölütleme derinliğiyle düzleştirir, dikdörtgen kesimleri çıkarır ve korunan konturlar boyunca sarma veya çift-tek dolgusunu korurCurveTolerance + 0,001 PDF puanı kadar genişler; tolerans eğri yaklaşımını sınırlar ve istenen dikdörtgenin dışında küçük ek bir payı kaldırabilirMaskRedactionImage, döndürme, yansıtma ve eğme dahil tekillik içermeyen afin dönüşümlerini ve desteklenen çözülmüş Gri, BGR, BGRx veya BGRA örneklerini kabul eder; çözülmüş çözünürlüğü korur ve taze bir değiştirme görüntüsü oluşturur0,001 PDF puanı kadar genişletilmiş bir karartma dikdörtgenine dokunan her pikselin hem renk hem de alfa baytları temizlenir; korunan pikseller çözülmüş renk örneklerini tutarValidateDetailedRedactionText, kısmi korunum için normal dolu metin gerektirir; karakter eşlemesi ve parça yeniden kurulumu üst düzey yöntemin sorumluluğunda kalırGenişletme ve kısmi geometri, saydamlık veya harman durumlarını, desteklenmeyen alt türleri, tekillik içeren matrisleri, desenli dolguları ile karmaşık veya artıklığı olmayan kırpma yollarını reddeder; desteklenen artıklıklı dikdörtgen kırpma, nesnenin eksiksiz sınırlarını içermelidir
| Option | Default | Meaning |
|---|---|---|
MaxFormDepth | 32 | Nested Form expansion depth |
MaxObjects | 1000000 | Page enumeration and cumulative expanded child limits |
MaxPathSegments | 262144 | Input segments per path and cumulative generated path points |
MaxFragments | 1000000 | Retained rectangle regions and cumulative replacement fragments |
MaxImagePixels | 16777216 | Cumulative decoded image pixels processed |
MaxGeometryOperations | 67108864 | Cumulative geometry and pixel intersection work |
CurveTolerance | 0.01 | Cubic flattening tolerance in PDF points |
Seçenekleri TPdfRedactionGeometryOptions.Default ile başlatın ve işlemden önce raporu bir kez sıfırlayın; üretilen noktaların, görüntü piksellerinin, parçaların ve işlem bütçelerinin birikmesi için yardımcı çağrıları boyunca aynı raporu tutun
ExpandedFormCount ve ScannedChildCount genişletmeyi tanımlar; ziyaret edilen sayı, alt öğelerin yanı sıra kök Form örneklerini de içerir; ClippedPathCount, FlattenedCurveCount ve GeneratedPointCount, ara kırpma noktaları dahil yol işini; MaskedImageCount, ScannedPixelCount, MaskedPixelCount ve PixelIntersectionTestCount görüntü işini tanımlar
FragmentCount, çokgen konturlarını veya pikselleri değil değiştirme nesnelerini sayar ve GeometryOperationCount sınırlı yardımcı işini biriktirir; bir özel durum tarafından bırakılan rapor, atılan işlem kopyasındaki kısmi işi tanımlayabilir
ValidateDetailedRedactionSource, değişiklikten önce aktif nesneleri ve çözülmüş içeriği inceler; TPdf.SaveAsRedacted, tüm nesne kaldırma ve daha basit kısmi profil dahil her profil için onu çağırır
/ActualText ve /Alt değiştirme verileri, XFA ve /OCProperties, /OCG ile /OCMD dahil optional-content semantiği reddedilirTr işleneni ile scn/SCN deseni veya özel renk uzayı boyaması reddedilir/FlateDecode filtresine sahip olmalıdır; kod çözme, içerik akışı başına 32 MiB ve toplamda 64 MiB ile sınırlıdırMevcut profil Tagged PDF yapısını yeniden kurmaz, rastgele saydamlığı korumaz, rastgele konturları veya kırpmayı desteklemez ya da kayıpsız kodlanmış görüntü korunumu vaat etmez; güvenli çıktı, yeniden üretimden sonra özgün akışların ve kullanılmayan kaynakların kaldırılmasını gerektirir; bunu TPdf.SaveAsRedacted yapar
Doğrudan çağırıcılar izole bir belge kopyası sağlamalı, yerel yetenekleri ve sınırlı pozitif bütçeleri doğrulamalı, başarısızlıkta kopyayı atmalı, değiştirilen sayfa içeriğini yeniden üretmeli ve dışa aktarmadan önce temizliği ile kaynak budamayı tamamlamalıdır