Bekerja dengan lapisan PDF menggunakan C#

Dokumen PDF mungkin mengandung berbagai data tersembunyi yang dapat mengancam kerahasiaan atau menimbulkan potensi ancaman saat file dibagikan.
Dengan menggunakan kelas HiddenDataSanitizer, Anda dapat menghapus data tersembunyi yang Anda pilih.
Anda dapat mengonfigurasi proses sanitasi dengan fleksibel menggunakan kelas HiddenDataSanitizerOptions.

HiddenDataSanitizationOptions

Kelas ini mengonfigurasi proses sanitasi untuk data tersembunyi dalam dokumen PDF.
Ini memungkinkan pengaktifan dan konfigurasi terpusat untuk penghapusan informasi yang berpotensi sensitif, tidak terlihat, atau tidak diinginkan (anotasi, skrip, metadata, lampiran, indeks, dll.),
serta mengontrol rasterisasi halaman dan parameter kompresi gambar.

Ini cocok untuk skenario seperti:

  • mempersiapkan dokumen untuk distribusi;
  • meningkatkan keamanan dan privasi;
  • menyederhanakan struktur PDF (meratakan formulir dan lapisan);
  • menghapus konten tersembunyi yang mungkin tidak terlihat selama tampilan normal.

Opsi

  • ImageCompressionOptions: ImageCompressionOptions
    Pengaturan kompresi gambar untuk optimasi. Diabaikan jika rasterisasi halaman diaktifkan. Tidak diaktifkan secara otomatis oleh metode All() — konfigurasikan secara manual jika diperlukan.

  • ConvertPagesToImages: bool
    Mengonversi halaman menjadi gambar raster. Ketika diaktifkan, ImageCompressionOptions diabaikan. Dilaksanakan setelah membersihkan konten tersembunyi utama oleh opsi lain. Tidak diaktifkan secara otomatis oleh metode All().

  • ImageDpi: int (default 150)
    Resolusi (DPI) yang digunakan saat mengonversi halaman menjadi gambar.

  • RemoveAnnotations: bool
    Menghapus semua anotasi dokumen. Anotasi yang disunting akan diterapkan.

  • RemoveSearchIndexAndPrivateInfo: bool
    Menghapus indeks pencarian yang disematkan dan informasi pribadi.

  • FlattenForms: bool
    Meratakan formulir: bidang interaktif menjadi konten statis yang tidak dapat diedit.

  • FlattenLayers: bool
    Meratakan lapisan: semua lapisan digabung menjadi satu, menyederhanakan struktur dan menghapus data lapisan tersembunyi.

  • RemoveJavaScriptsAndActions: bool
    Menghapus JavaScript dan tindakan terkait untuk menghilangkan potensi kerentanan.

  • RemoveMetadata: bool
    Menghapus metadata (properti dokumen dan informasi tambahan yang disematkan).

  • RemoveAttachments: bool
    Menghapus semua file yang disematkan.

Metode

  • static All(): HiddenDataSanitizationOptions
    Mengembalikan instance yang telah dikonfigurasi sebelumnya dengan opsi berikut diaktifkan:
    RemoveAnnotations, RemoveJavaScriptsAndActions, RemoveMetadata, RemoveAttachments, RemoveSearchIndexAndPrivateInfo, FlattenForms, FlattenLayers;
    dan dengan konversi halaman menjadi gambar (ConvertPagesToImages = false) dan pemrosesan gambar (ImageCompressionOptions = null) dinonaktifkan.
    Anda dapat mengonfigurasi ImageCompressionOptions dan ConvertPagesToImages secara manual setelah memanggil All().

HiddenDataSanitizer

Kelas HiddenDataSanitizer menyediakan fungsi untuk membersihkan dokumen PDF dari data tersembunyi (metadata, lampiran, anotasi, JavaScript, informasi pribadi, dll.).
Ini menggunakan serangkaian opsi yang ditentukan dalam HiddenDataSanitizationOptions untuk mengontrol proses sanitasi dengan fleksibel.

Metode Statis SanitizeAllToImages

public static void SanitizeAllToImages(Document document, int dpi = 150)

Mengonversi semua halaman dokumen PDF menjadi gambar dan kemudian menghapus data tersembunyi yang tersisa. Metode ini berguna ketika Anda perlu “menyegel” dokumen sepenuhnya sebagai gambar raster, menghilangkan semua elemen tersembunyi.

Metode Instance Sanitize

public void Sanitize(Document document)

Melakukan sanitasi PDF sesuai dengan opsi yang diberikan dalam konstruktor.

Contoh Penggunaan