امروز می خواهیم روش هایی را بیاموزیم که با استفاده از سی شارپ، ابرداده اسناد و همچنین تصاویر را به طور برنامه نویسی حذف یا به طور کامل پاکسازی کنیم. در یک پست قبلی، ما در مورد حذف ویژگی‌های انتخابی و همچنین تمام ویژگی‌های فراداده موجود از اسناد و تصاویر با استفاده از Java بحث کردیم. گاهی اوقات مهم است که اطلاعات شخصی که به سند پیوست شده است از گیرنده پنهان شود. موضوعات زیر به شما کمک می کند تا فایل های خود را از ابرداده ها با استفاده از C# پاک کنید.

API حذف فراداده .NET

برای دستیابی به آنچه برنامه ریزی شده است، از GroupDocs.Metadata for .NET API استفاده خواهم کرد که به توسعه دهندگان NET اجازه می دهد تا از بسیاری از فرمت های پشتیبانی شده اسناد اضافه، اصلاح، استخراج، حذف یا به طور کامل ابرداده ها، تصاویر و فایل های دیگر API از استانداردهای ابرداده مانند EXIF، XMP، IPTC، برچسب ID3 و غیره پشتیبانی می‌کند.

Install-Package GroupDocs.Metadata

حذف متادیتا از اسناد با استفاده از C#

برای حذف تمام ویژگی های ابرداده بدون اعمال فیلتر خاص، از روش Sanitize استفاده کنید. مراحل زیر برای پاک کردن ابرداده از اسنادی مانند DOCX، PDF، XLSX و غیره با استفاده از GroupDocs.Metadata برای .NET ارائه شده است.

  • با ایجاد شی کلاس Metadata شروع کنید و مسیر سند هدف را به عنوان پارامتر ارسال کنید.
  • از روش Sanitize برای پاک کردن تمام ابرداده های موجود استفاده کنید. تعداد ویژگی های ابرداده حذف شده را برمی گرداند.
  • برای ذخیره فایل خروجی با ابرداده حذف شده، روش Save را فراخوانی کنید.

نمونه کد C# زیر نحوه حذف و پاک کردن متادیتا را از یک سند PDF نشان می دهد.

/*
* تمام ویژگی های فراداده شناسایی شده را از Word، Excel، و 
* پاورپوینت، PDF و سایر اسناد با استفاده از سی شارپ
*/
using (Metadata metadata = new Metadata("filePath/document.pdf"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.pdf");
}

حذف متادیتا از تصاویر با استفاده از C#

چه بخواهید ابرداده را از اسناد خود حذف کنید و چه از فایل های تصویری خود، روند یکسان باقی می ماند. فقط سند منبع بر این اساس تغییر خواهد کرد.

  • شیء کلاس Metadata را ایجاد کنید و مسیر سند را به عنوان پارامتر ارسال کنید.
  • روش Sanitize را فراخوانی کنید تا هر گونه ویژگی فراداده موجود را حذف کنید.
  • فایل خروجی را با استفاده از روش Save ذخیره کنید.

نمونه کد C# زیر نحوه حذف متادیتا را از یک تصویر JPG نشان می دهد.

/*
* پاک کردن یا حذف تمام ویژگی های فراداده شناسایی شده از PNG، JPG/JPEG،
* WebP، BMP، GIF، TIFF و سایر تصاویر با استفاده از C#
*/
using (Metadata metadata = new Metadata("filePath/document.jpg"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.jpg");
}

حذف فراداده انتخابی از اسناد و تصاویر با استفاده از C#

اگر نیازی به حذف تمام ابرداده‌های موجود از فایل‌ها نیست، و فقط می‌خواهیم فقط ویژگی‌های ابرداده انتخابی را حذف کنیم. مراحل زیر به شما این امکان را می دهد تا با استفاده از نام خاص ویژگی، ویژگی های فراداده هدفمند را پیدا کرده و حذف کنید.

  • یک شی از کلاس Metadata برای بارگیری سند منبع یا فایل تصویر ایجاد کنید.
  • برای یافتن ویژگی های ابرداده، مشخصات شخصی ایجاد کنید.
  • روش RemoveProperties را با مشخصات شخصی ایجاد شده فراخوانی کنید.
  • فایل خروجی را با استفاده از روش Save ذخیره کنید.
// ویژگی های ابرداده را از اسناد و تصاویری که فیلتر سفارشی شده را با استفاده از C# برآورده می کند، حذف کنید.
using (Metadata metadata = new Metadata("filePath/document.docx"))
{
	// تمام خصوصیاتی را که:
	// حاوی نام نویسنده سند OR
	// به آخرین ویرایشگر OR اشاره دارد 
	// مقدار ویژگی یک رشته و برابر با رشته داده شده "GroupDocs" است
	var affected = metadata.RemoveProperties(
		p => p.Tags.Contains(Tags.Person.Creator) ||
			 p.Tags.Contains(Tags.Person.Editor) ||
			 p.Value.Type == MetadataPropertyType.String && p.Value.ToString().Contains("GroupDocs"));
	Console.WriteLine("Properties removed: {0}", affected);

	metadata.Save("outputPath/document.docx");
}

نتیجه

راه های حذف ابرداده از اسناد و تصاویر با استفاده از C# را یاد گرفتیم. پس از گذراندن این مقاله، با استفاده از .NET احساس راحتی خواهید کرد که برنامه پاک کننده ابرداده خود را بسازید. می‌تواند از حذف ابرداده از فرمت‌های سند MS Word، صفحات گسترده، ارائه‌ها، فایل‌های PDF، تصاویر، ایمیل‌ها، کتاب‌های الکترونیکی، نقاشی‌ها، فایل‌های فشرده و بسیاری موارد دیگر [فرمت‌های فایلی که توسط API پشتیبانی می‌شوند20 پشتیبانی کند.

می‌توانید .NET Metadata Manipulation API را از مستندات بیشتر بررسی کنید.

همچنین ببینید