function SaveAsSanitised(Stream: TStream;
const Options: TPdfSanitiseOptions;
out Report: TPdfSanitiseReport): Boolean; overload;
function SaveAsSanitised(const FileName: string;
const Options: TPdfSanitiseOptions;
out Report: TPdfSanitiseReport): Boolean; overload;
SaveAsSanitised, belge kataloğundan etkin içerik vektörlerini kaldıran ve ardından dosya gövdesindeki öksüz nesneleri elemek için isteğe bağlı bir erişilebilirlik budaması çalıştıran temizlenmiş tek revizyonluk bir PDF kopyası üretir
İki aşamalı hat, önce katalog girdilerini
(/OpenAction, /AA, /Names,
/AF,
/AcroForm, /Metadata) bir artımlı güncelleme olarak
StripDictionaryEntries ile ayıklar, sonra
dosyayı tek bir temiz klasik revizyon olarak yeniden yazmak için
PruneUnreachablePdfStream çalıştırır
Katalog ve trailer güncellemesi, kaydedilen eksiksiz PDF'yi tek bir bayt dizisinde somutlaştırmak yerine, normal xref yolunda seyrek xref araması, 1 MiB'den büyük olmayan ayrıştırıcı pencereleri ve 64 KiB'lik aralık kopyalama kullanır
Budama etkinken ara çalışma alanı,
SaveMemoryLimit ve
SaveTemporaryDirectory ile yönetilen bir
TPdfRandomAccessStore olur
En yüksek belleği ve taşma durumu,
LastSaveLargestMemoryBuffer ve
LastSaveSpillCount içinde yer alır
Her ayıklama bayrağı bağımsızdır
TPdfSanitiseOptions.Default tam güvenlik
profilini etkinleştirir: StripOpenAction,
StripCatalogActions, StripNames,
StripAssociatedFiles ve ayrıca
RemoveUnreachable budaması. StripAcroForm
ile StripMetadata, çağıranların korumak isteyebileceği form alanlarını ve üst veriyi
kaldırdığı için varsayılan olarak False değerindedir
RemoveUnreachable=True olduğunda çıktı her zaman artımlı
geçmişi olmayan tek bir revizyondur
Options — TPdfSanitiseOptions kaydı; standart güvenlik profili için Default kullanınReport — ayıklanan girdi sayısını, budanan nesne sayısını, bayt sayılarını ve varsa hatayı alırStripNames; /JavaScript, /EmbeddedFiles, /Dests ve /AP dahil /Names sözlüğünün tamamını kaldırır; bu, temizlik için bilinçli olarak saldırgandırStripAssociatedFiles, katalog düzeyindeki /AF girdisini kaldırır ve varsayılanı True'durStripMetadata hem katalog /Metadata (XMP) hem trailer /Info değerini kaldırır/AA ve /A eylemleri bu yöntemde ayıklanmaz; yalnızca katalog düzeyindeki etkin içerik kaldırılırTryReadTrailerInfo koruması tarafından reddedilir/AcroForm ayıklamak imza alanlarını kaldırır ve mevcut imzaları geçersiz kılar
var
Options: TPdfSanitiseOptions;
Report: TPdfSanitiseReport;
begin
Pdf1.FileName := 'C:\Untrusted.pdf';
Pdf1.Active := True;
Options := TPdfSanitiseOptions.Default;
Pdf1.SaveAsSanitised('C:\Sanitised.pdf', Options, Report);
end;