Redaction
Redaction
Bu sayfa, bir PDF sayfasından içeriğin kalıcı olarak kaldırılmasını kapsar. Aspose.PDF TypeScript için FOSS, iki kırpma iş akışı sunar: taahhüt etmeden önce gözden geçirdiğiniz iki aşamalı işaretle-uygula akışı ve tek çağrılı anında akış. Her ikisi de tek bir sayfa için Page ve tüm belge için Document üzerinde mevcuttur.
Kırpmaları İşaretleme ve Uygulama
Page.AddRedact(), dikdörtgen bir bölgeyi /Redact açıklamasıyla işaretler — altındaki içerik dokunulmamış kalır ve hâlâ kopyalanabilir. Gerçekten bir şey ancak Page.ApplyRedactions() çalıştırıldığında kaldırılır: sayfadaki her /Redact işareti için içerik akışını yıkıcı bir şekilde yeniden yazar, her işaretin üst katmanını (its /IC doldurması ve /OverlayText) boyar, işaretleri kaldırır ve uygulanan kırpma sayısını döndürür. ApplyRedactions() çağrıldıktan sonra eklenen işaretler uygulanmaz.
page.AddRedact({
rect: [220, 550, 460, 566],
fill: [0, 0, 0],
overlayText: '[REDACTED]',
align: 'center',
fontSize: 9,
textColor: [1, 1, 1],
});
const applied = page.ApplyRedactions();
console.log('Redactions applied:', applied);Anında Kırpma
Page.Redact() ve Page.RedactText(), işaretleme ve uygulamayı tek bir çağrıda birleştirir: kaplanan metin ve görselleri gerçekten kaldırır, kaldırma sonucu yalnız kalan kaynakları budar ve her bölge üzerine opak bir işaret kutusu çizer — ayrı bir ApplyRedactions() adımı olmadan ve önceden gözden geçirilecek bir şey kalmadan. Page.Redact(), açık bir Rect bölge listesi alır; Page.RedactText(), bir arama dizesi ya da RegExp her oluşumunu bulur ve kırpar, Page.SearchAnnotationText() aramalarıyla aynı şekilde. İkisi de işaretleyiciyi kontrol eden bir RedactOptions nesnesini kabul eder: color, scrubMetadata olup olmayacağını ve kırpılmış bir bölgeyle çakışan keepAnnotations.
İçeriği hemen, gözden geçirme adımı olmadan kaldırdıkları için, bir işaretin taahhüt edilmeden önce incelenebilir olmasını istediğinizde AddRedact() + ApplyRedactions() tercih edin ve bölgeler ya da arama terimleri zaten kaldırılmasının güvenli olduğu biliniyorsa Redact() / RedactText() kullanın.
Bir Belgede Tam Kırpma
Aynı iki iş akışı Document üzerinde mevcuttur ve tüm sayfalara aynı anda uygulanır: Document.MarkRedactText(), arama teriminin tüm sayfalardaki her oluşumunu işaretler, Document.ApplyRedactions(), belgedeki tüm işaretleri uygular ve Document.Redact() / Document.RedactText(), tek bir sayfanın bölgelerini veya belge genelindeki bir arama terimini anında kırpar, Page eşdeğerlerini yansıtarak.
İpuçları ve En İyi Uygulamalar
AddRedact()+ApplyRedactions()kombinasyonunu, kırpmanın etkili olmadan önce incelenebilir olması gerektiğinde kullanın;Redact()/RedactText()kombinasyonunu ise bölgelerin zaten güvenli olduğu ve hemen kaldırılabileceği durumlarda kullanın.ApplyRedactions()çağrısına önce bir sayfa için tümAddRedact()işaretlerini ekleyin — daha sonra eklenen işaretler o çağrı içinde yer almaz ve uygulanmaz kalır.- Kırpılan içerik belge meta verilerinde (
/Infoveya XMP) de bulunabilirkenRedactOptions/ApplyRedactionsOptionsiçindescrubMetadata: trueparametresini geçin. RedactText()veMarkRedactText(),SearchAnnotationText()/Searchile aynı eşleşme kurallarını kullanarak arama yapar, bu nedenle orada eşleşmeyen bir arama dizesi kırpma işlemini de başarısız kılar.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
| Redaksiyon işareti etkisiz | Page.ApplyRedactions() hiç çağrılmadı | Page.AddRedact()‘ı her işaret için önce çağırın, ardından Page.ApplyRedactions()‘ı bir kez çağırın |
| İşaretten sonra içerik hâlâ kurtarılabilir | İşaret, ardından gelen ApplyRedactions() çağrısı olmadan AddRedact() (sadece işaret) kullandı | Çağır ApplyRedactions(), ya da tek çağrı kaldırma için Redact() / RedactText() kullanın |
| Kırpılmış metin, çıkarılan belge meta verilerinde tekrar görünür | scrubMetadata ayarlanmamıştı | Seçenekler nesnesine { scrubMetadata: true } geçirin |
ApplyRedactions(), 0 döndürür | Çağrıldığında sayfada /Redact işareti bulunmuyordu | AddRedact() (veya MarkRedactText()) önce çalıştığını ve aynı sayfayı hedeflediğini doğrulayın |
FAQ
AddRedact ile Redact arasındaki fark nedir?
AddRedact() yalnızca bir bölgeyi işaretler — içerik hâlâ mevcut ve ApplyRedactions() çalışana kadar kopyalanabilir ve seçilebilir. Redact() aynı çağrıda içeriği kaldırır, ayrı bir uygulama adımı olmadan.
Koordinatları belirtmek yerine metin arayarak kırpma yapabilir miyim?
Evet. RedactText() bir arama dizesi veya RegExp öğesinin her oluşumunu bulur ve hemen kırpar; MarkRedactText() aynı şeyi yapar ancak sadece eşleşmeleri işaretler, daha sonraki bir ApplyRedactions() çağrısına bırakır.
Kırpma tüm belge boyunca mı çalışıyor, yoksa bir seferde yalnızca bir sayfa mı?
İkisi de. Page.Redact() / Page.ApplyRedactions() ve bunların eşdeğerleri bir sayfada çalışır; Document.Redact() / Document.ApplyRedactions() ve bunların eşdeğerleri her sayfada çalışır.
Kırpılmış bir bölgenin yakınındaki açıklamalar da kaldırılıyor mu?
Sadece onlara izin verirseniz. keepAnnotations: true öğesini seçenekler nesnesine geçirerek, kırpılmış bir bölgeyle çakışan ek açıklamaları, onlarla birlikte kaldırmak yerine koruyun.
API Reference Özet
| Sınıf/Yöntem | Açıklama |
|---|---|
Page.AddRedact() | Bir /Redact açıklamasıyla dikdörtgen bir bölgeyi işaretleyin, henüz içeriği kaldırmadan. |
Page.ApplyRedactions() | Sayfada işaretlenmiş tüm bölgeleri kalıcı olarak kaldırın ve uygulanan sayıyı döndürün. |
Page.Redact() | Verilen bölgelerdeki içeriği hemen kaldırın, ayrı bir uygulama adımı olmadan. |
Page.RedactText() | Bir arama dizesi ya da RegExp öğesinin tüm oluşumlarını bulun ve hemen gizleyin. |
Page.MarkRedactText() | Arama dizesinin veya RegExp her bir oluşumunu bul ve işaretle (uygulamadan). |
Document.ApplyRedactions() | Tüm belge boyunca her /Redact işaretini uygula. |
Document.Redact() / Document.RedactText() | Bir sayfada bölgeleri ya da her sayfada bir arama terimini hemen gizle. |
Document.MarkRedactText() | Her sayfada bir arama teriminin tüm oluşumlarını işaretle. |