function SaveAsRedacted(Stream: TStream;
const Options: TPdfRedactionOptions;
out Report: TPdfRedactionReport): Boolean; overload;
function SaveAsRedacted(const FileName: string;
const Options: TPdfRedactionOptions;
out Report: TPdfRedactionReport): Boolean; overload;
SaveAsRedacted, geçerli belgeyi yalıtılmış bir rastgele erişimli anlık görüntüye yakalar, bu anlık görüntüyü ayrı bir TPdf olarak açar ve her /Redact ek açıklama dikdörtgenini işler
Varsayılan seçenekler, desteklenen güvenli geometriyi korumak için hem PreservePartialObjects hem de PreserveComplexObjects seçeneklerini etkinleştirir; bu sınırlı profil metni saklanan karakter parçalarından yeniden oluşturur, dolgulu yolları kırpar ve affine görüntülerde kesişen pikselleri temizler
Herhangi bir redaksiyon açıklaması varsa, ayrıntılı profil redaksiyonları uygulamadan önce redakte edilmemiş sayfalar dahil her sayfadaki her Form XObject örneğini genişletir; örnek dönüşümleri birleştirilir ve özgün paylaşılan Form akışları daha sonra kaynak budama ile kaldırılabilir
Tüm kesişen nesneleri kaldırmak için PreservePartialObjects := False yapın ya da etkin bırakıp daha basit metin, eksene hizalı dikdörtgen ve eksene hizalı görüntü parçalama profilini kullanmak için PreserveComplexObjects := False yapın; kaynak güvenlik denetimleri üç profilin tümü için geçerlidir
Yöntem tüm redaksiyon açıklamalarını kaldırır, isteğe bağlı olarak diğer kesişen ek açıklamaları kaldırır, redakte edilmiş sayfalardaki dosya eki ek açıklamalarını kaldırır, yerel gömülü ekleri siler ve katalog /AF, etkin içerik, formlar, üst veri ve erişilemeyen nesneler ayıklanmış olarak temizlenmiş yeniden yazmayı çalıştırır
Sayfa içeriği yeniden oluşturulduktan sonra, hassas kaynak budama sayfa, Form XObject, desen, görünüm, kalıtsal ve iç içe kaynak kapsamlarını tarar ve erişilemeyen nesneler atılmadan önce yalnızca kullanılmayan adları kaldırır
Çıktı, önceki belge revizyonları olmadan tek bir temiz revizyona sahiptir; yüklenen kaynak belge ise değişmeden kalır. Desteklenmeyen kaynak semantiği ya da desteklenmeyen ayrıntılı geometri, kısmen redakte edilmiş bir sonuç üretmek yerine işlemi iptal eder
FillColor — opak değiştirme rengi, varsayılan clBlackRemoveIntersectingAnnotations — dikdörtgeni bir redaksiyon dikdörtgeniyle örtüşen redaksiyon olmayan ek açıklamaları kaldırır, varsayılan TrueMaxPageObjects — redakte edilmiş sayfalarda taranan üst düzey sayfa nesnelerinin azami sayısı, varsayılan 1000000PreservePartialObjects — desteklenen, kesişmeyen metin, yol ve görüntü parçalarını korur, varsayılan TrueMaxSplitObjects — işlem boyunca oluşturulan güvenli parçaların azami sayısı, varsayılan 1000000PreserveComplexObjects — PreservePartialObjects de etkinken sınırlı Form genişletmeyi, dolgulu yol kırpmayı ve affine görüntü piksel temizlemeyi etkinleştirir, varsayılan TrueMaxFormDepth — azami iç içe Form genişletme derinliği, varsayılan 32, kabul edilen aralık 1..64MaxPathPoints — etkilenen bir yoldaki segmentleri ve kümülatif üretilen yol noktalarını sınırlar, varsayılan 262144, kabul edilen aralık 1..1000000MaxImagePixels — ayrıntılı görüntü değiştirmeleri için işlenen kümülatif çözülmüş piksel sayısı, varsayılan 16777216, kabul edilen aralık 1..67108864MaxGeometryOperations — ek açıklama ve metin taramaları, yol alt bölümleme ve kırpma ile piksel kesişim testleri dahil kümülatif ayrıntılı geometri işi, varsayılan 67108864, kabul edilen aralık 1..1000000000CurveTolerancePdfPoints — sayfa uzayı kübik düzleştirme toleransı, varsayılan 0.01, kabul edilen sonlu aralık 0.0001..0.1; yol kesimleri bu tolerans artı 0.001 PDF point kadar genişler, böylece dar bir ek güvenli marj kaldırılabilirYukarıdaki Form, yol, görüntü, geometri ve tolerans seçenekleri ayrıntılı profil tarafından doğrulanır ve kullanılır; bağımsız kaynak inceleme bütçelerini yükseltmezler
TPdfRedactionReport; RedactionCount, RedactedPageCount, ScannedObjectCount, RemovedObjectCount, RemovedAnnotationCount, RemovedAttachmentCount, OverlayCount, SplitTextObjectCount, SplitPathObjectCount, SplitImageObjectCount, PreservedFragmentCount, bayt sayılarını, iç içe SanitiseReport ve ResourcePruneReport değerlerini, Succeeded ve ErrorMessage alanlarını döndürür
Ayrıntılı iş; ExpandedFormCount, ScannedFormChildCount, FlattenedCurveCount, GeneratedPathPointCount, MaskedImageCount, ScannedImagePixelCount, MaskedImagePixelCount, PixelIntersectionTestCount ve GeometryOperationCount alanlarını ekler; CurveTolerancePdfPoints başarılı işlemeden sonra yapılandırılmış toleransı kaydeder
ScannedFormChildCount, genişletme sırasında ziyaret edilen yerel nesneleri — kök Form örnekleri dahil — sayar ve GeneratedPathPointCount, düzleştirilmiş eğri noktalarının yanı sıra ara kırpma noktalarını da içerir
MaskedImagePixelCount, tam renk ve alfa örnekleri temizlenen pikselleri sayarken PreservedFragmentCount, tek tek korunan pikseller ya da çokgen konturlar yerine değiştirme nesnelerini sayar; başarısızlık durumundaki işlem sayaçları kısmi olabilir ve işlenmiş bir çıktı anlamına gelmez
0.001 PDF point ile genişletilmiş bir redaksiyon dikdörtgenine değdiğinde bir piksel temizlenir; hem RGB hem alfa sıfırlanır, ardından opak bir FillColor katmanı redaksiyon dikdörtgenini kaplar/ActualText ya da /Alt değiştirme verisini, XFA'yı ve /OCProperties, /OCG ile /OCMD dahil isteğe bağlı içerik katmanı semantiğini reddeder; bu yöntem mantıksal yapıyı yeniden kurmaz ya da bu gizli semantiği korumazTr operandlarını ve scn/SCN desen veya özel renk alanı boyamasını reddeder; desteklenen incelenen içerik akışları filtresizdir ya da tek adlı bir /FlateDecode filtresi kullanır256 MiB ile, tek tek etkin nesne gövdelerini 64 MiB ile, toplam etkin gövdeleri 256 MiB ile, çözülmüş nesne akışlarını her biri 64 MiB ve toplam 256 MiB ile ve nesne yuvalarını 1000000 ile sınırlar; incelenen içerik çözme işlemi ek olarak akış başına 32 MiB ve toplam 64 MiB sınırına sahiptir/AF, /Names ağacı, yerel gömülü ekler ve redakte edilmiş sayfalardaki dosya eki ek açıklamaları kaldırılır; ilgisiz yapı sözlüklerine gömülü keyfi ilişkili dosya girdileri bu yöntemin açık garantisi dışındadır/Redact ek açıklaması yokken yöntemi çağırmak yine de temizlenmiş tek revizyonluk güvenlik profilini üretir
var
Options: TPdfRedactionOptions;
Report: TPdfRedactionReport;
begin
Options := TPdfRedactionOptions.Default;
Options.FillColor := clBlack;
if not Pdf1.SaveAsRedacted('C:\redacted.pdf', Options, Report) then
raise Exception.Create(Report.ErrorMessage);
end;