Redaction
Redaction
Halaman ini membahas penghapusan konten secara permanen dari halaman PDF. Aspose.PDF FOSS untuk TypeScript menawarkan dua alur kerja redaksi: alur dua fase menandai-lalu-menerapkan yang dapat Anda tinjau sebelum mengkomit, dan alur satu panggilan langsung. Keduanya tersedia di Page untuk satu halaman dan di Document untuk seluruh dokumen.
Menandai dan Menerapkan Redaksi
Page.AddRedact() menandai wilayah persegi panjang dengan anotasi /Redact — konten di bawahnya tidak tersentuh dan masih dapat disalin. Tidak ada yang benar-benar dihapus sampai Page.ApplyRedactions() dijalankan: ia menimpa aliran konten secara destruktif untuk setiap tanda /Redact pada halaman, melukis overlay setiap tanda (isi /IC dan /OverlayText), menghapus tanda-tanda tersebut, dan mengembalikan jumlah redaksi yang diterapkan. Tanda yang ditambahkan setelah ApplyRedactions() dipanggil tetap tidak diterapkan.
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);Redaksi Secara Langsung
Page.Redact() dan Page.RedactText() menggabungkan penandaan dan penerapan menjadi satu panggilan: mereka benar-benar menghapus teks dan gambar yang tertutup, memangkas sumber daya yang ditinggalkan menjadi yatim setelah penghapusan, dan melukis kotak penanda opak di atas setiap wilayah — tanpa langkah ApplyRedactions() terpisah dan tanpa hal yang harus ditinjau terlebih dahulu. Page.Redact() menerima daftar eksplisit wilayah Rect; Page.RedactText() menemukan dan menyensor setiap kemunculan string pencarian atau RegExp, dengan cara yang sama seperti pencarian Page.SearchAnnotationText(). Keduanya menerima objek RedactOptions yang mengontrol penanda color, apakah akan scrubMetadata, dan apakah akan keepAnnotations yang tumpang tindih dengan wilayah yang disensor.
Karena mereka menghapus konten secara langsung tanpa langkah peninjauan, pilih AddRedact() + ApplyRedactions() ketika sebuah tanda harus dapat diperiksa sebelum dikomit, dan Redact() / RedactText() ketika wilayah atau istilah pencarian sudah diketahui aman untuk dihapus.
Menyensor Seluruh Dokumen
Dua alur kerja yang sama ada pada Document, yang berlaku untuk setiap halaman sekaligus: Document.MarkRedactText() menandai setiap kemunculan istilah pencarian di semua halaman, Document.ApplyRedactions() menerapkan setiap tanda dalam dokumen, dan Document.Redact() / Document.RedactText() menyensor wilayah halaman tunggal atau istilah pencarian di seluruh dokumen secara langsung, meniru setara Page mereka.
Tips dan Praktik Terbaik
- Gunakan
AddRedact()+ApplyRedactions()ketika penyensoran harus dapat ditinjau sebelum berlaku; gunakanRedact()/RedactText()ketika wilayah tersebut sudah dipastikan aman untuk dihapus secara langsung. - Tambahkan setiap tanda
AddRedact()untuk sebuah halaman sebelum memanggilApplyRedactions()— tanda yang ditambahkan setelahnya tidak termasuk dalam panggilan itu dan tetap tidak diterapkan. - Berikan
scrubMetadata: truedalamRedactOptions/ApplyRedactionsOptionsketika konten yang disensor mungkin juga terdapat dalam metadata dokumen (/Infoatau XMP). RedactText()danMarkRedactText()mencari dengan aturan pencocokan yang sama sepertiSearchAnnotationText()/Search, sehingga string pencarian yang gagal cocok di sana juga akan gagal menyensor.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
| Tanda redaksi tidak berpengaruh | Page.ApplyRedactions() tidak pernah dipanggil | Panggil Page.AddRedact() untuk setiap tanda terlebih dahulu, lalu Page.ApplyRedactions() sekali |
| Konten masih dapat dipulihkan setelah tanda | Tanda tersebut menggunakan AddRedact() (hanya-tanda) tanpa panggilan ApplyRedactions() berikutnya | Panggil ApplyRedactions(), atau gunakan Redact() / RedactText() untuk penghapusan satu panggilan |
| Teks yang disensor muncul kembali dalam metadata dokumen yang diekstrak | scrubMetadata tidak diatur | Berikan { scrubMetadata: true } dalam objek opsi |
ApplyRedactions() mengembalikan 0 | Tidak ada tanda /Redact yang ada di halaman saat dipanggil | Pastikan AddRedact() (atau MarkRedactText()) dijalankan terlebih dahulu dan menargetkan halaman yang sama |
FAQ
Apa perbedaan antara AddRedact dan Redact?
AddRedact() hanya menandai sebuah wilayah — kontennya masih ada dan dapat disalin hingga ApplyRedactions() dijalankan. Redact() menghapus konten dalam panggilan yang sama, tanpa langkah terapkan terpisah.
Apakah saya dapat melakukan redaksi dengan mencari teks alih-alih menentukan koordinat?
Ya. RedactText() menemukan dan langsung meredaksi setiap kemunculan string pencarian atau RegExp; MarkRedactText() melakukan hal yang sama tetapi hanya menandai kecocokan, meninggalkannya untuk dipanggil ApplyRedactions() nanti.
Apakah redaksi berfungsi di seluruh dokumen, atau hanya satu halaman sekaligus?
Keduanya. Page.Redact() / Page.ApplyRedactions() dan saudara mereka beroperasi pada satu halaman; Document.Redact() / Document.ApplyRedactions() dan saudara mereka beroperasi di semua halaman.
Apakah anotasi di dekat wilayah yang telah diredaaksi juga dihapus?
Hanya jika Anda membiarkannya. Lewatkan keepAnnotations: true dalam objek opsi untuk mempertahankan anotasi yang tumpang tindih dengan wilayah yang disensor alih-alih menghapusnya bersama wilayah tersebut.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
Page.AddRedact() | Tandai area persegi panjang dengan anotasi /Redact, tanpa menghapus konten dulu |
Page.ApplyRedactions() | Hapus secara destruktif setiap area yang ditandai pada halaman dan kembalikan jumlah yang diterapkan |
Page.Redact() | Segera hapus konten di wilayah yang diberikan, tanpa langkah terpisah untuk menerapkan. |
Page.RedactText() | Temukan dan segera menyensor setiap kemunculan string pencarian atau RegExp |
Page.MarkRedactText() | Temukan dan tandai (tanpa menerapkan) setiap kemunculan string pencarian atau RegExp |
Document.ApplyRedactions() | Terapkan setiap tanda /Redact di seluruh dokumen |
Document.Redact() / Document.RedactText() | Segera redaksi wilayah pada satu halaman, atau istilah pencarian di setiap halaman |
Document.MarkRedactText() | Tandai setiap kemunculan istilah pencarian di setiap halaman |