فهرست مطالب

مرور کلی

مدیریت متادیتا اسناد در فرمت‌های مختلف می‌تواند چالش‌برانگیز باشد. GroupDocs.Metadata برای .NET این کار را با ارائه یک سیستم برچسب‌گذاری ساده می‌کند تا ویژگی‌های متادیتای رایج (مانند عنوان، نویسنده، تاریخ ایجاد) را تحت برچسب‌ها یکپارچه کند. در این راهنما، نحوه یافتن، افزودن، کپی، به‌روزرسانی و حذف متادیتا با استفاده از برچسب‌ها در GroupDocs.Metadata برای .NET را بررسی می‌کنیم.

GroupDocs.Metadata از برچسب‌ها برای علامت‌گذاری ویژگی‌های مهم متادیتا در یک فایل استفاده می‌کند، بدون در نظر گرفتن فرمت سند یا استاندارد متادیتا. هر برچسب به یک دسته تعلق دارد که برچسب‌های مرتبط را برای یافتن آسان‌تر گروه‌بندی می‌کند.

به‌عنوان مثال:

  • برچسب‌های محتوا: توصیف محتوای یک فایل (مانند زبان، ژانر، موضوع، امتیاز)
  • برچسب‌های شخص: شناسایی افراد یا سازمان‌های مرتبط با محتوا (مانند سازنده سند، ویرایشگر، شرکت)
  • برچسب‌های زمان: نشان دادن زمان‌های مختلف در طول عمر فایل (مانند تاریخ ایجاد، زمان آخرین تغییر، تاریخ چاپ)
  • (دسته‌های دیگری مانند حقوقی، منبع، ابزار و غیره وجود دارند که هر کدام برچسب‌های مرتبط را گروه‌بندی می‌کنند.)

با استفاده از این برچسب‌ها، می‌توانید متادیتا را به‌صورت یکپارچه در طیف وسیعی از اسناد Word، PDF، تصاویر و … جستجو و دستکاری کنید. به‌عنوان مثال، برچسب «نویسنده» یا سازنده در دسته شخص، ویژگی author را در یک سند Word یا PDF شناسایی می‌کند بدون این‌که نیاز به دانستن نام فیلد متادیتای خاص هر فرمت داشته باشید. این باعث می‌شود برچسب‌ها برای سازماندهی فایل‌ها و خودکارسازی کارهای مدیریت متادیتا بسیار مفید باشند.

موارد استفاده

در این بخش، موارد استفاده مختلفی را معرفی می‌کنیم که کاربردهای عملی را برجسته می‌سازند.

یافتن ویژگی‌های متادیتا بر اساس برچسب

یک کاربرد رایج یافتن ورودی‌های متادیتا در یک فایل بر اساس برچسب آن است. این به‌خصوص برای بهبود قابلیت جستجو مفید است – می‌توانید اطلاعات خاصی را از هر سند استخراج کنید بدون آنکه نگران فرمت آن باشید.

مراحل

  1. فایل را در یک شیء Metadata بارگذاری کنید.
  2. ویژگی‌ها را با استفاده از FindProperties() و یک پیش‌شرط مبتنی بر برچسب پیدا کنید. می‌توانید بر اساس برچسب خاص یا یک دسته کامل فیلتر کنید.
  3. روی نتایج تکرار کنید تا متادیتا را بررسی یا استفاده کنید.
// Load the source document (e.g., a PowerPoint file)
using (Metadata metadata = new Metadata("source.pptx"))
{
    // Find properties tagged as "last editor" or "last modified time"
    var properties = metadata.FindProperties(p => 
        p.Tags.Contains(Tags.Person.Editor) || 
        p.Tags.Contains(Tags.Time.Modified));

    // List the found properties and their values
    foreach (var property in properties)
    {
        Console.WriteLine($"Property name: {property.Name}, Value: {property.Value}");
    }
}

افزودن ویژگی‌های متادیتا بر اساس برچسب

گاهی یک فایل ممکن است برخی متادیتاها را نداشته باشد (مانند عدم وجود «تاریخ آخرین چاپ»). با استفاده از GroupDocs.Metadata می‌توانید ویژگی متادیتا را با تعیین یک برچسب اضافه کنید و API آن را در بسته متادیتای مناسب قرار می‌دهد، اگر فرمت از آن پشتیبانی کند.

مراحل

  1. فایل را در یک شیء Metadata بارگذاری کنید.
  2. متد AddProperties() را با یک پیش‌شرط فراخوانی کنید تا مکان افزودن را تعیین کنید و مقدار ویژگی جدید را ارائه دهید.
  3. مقدار بازگشتی را بررسی کنید تا ببینید چه تعداد ویژگی افزوده شده‌اند.
  4. سند را ذخیره کنید (اگر می‌خواهید تغییرات را دائم کنید).
using (Metadata metadata = new Metadata("source.pdf"))
{
    if (metadata.FileFormat != FileFormat.Unknown && !metadata.GetDocumentInfo().IsEncrypted)
    {
        // Add a "Last Printed" date property if it's missing
        int affected = metadata.AddProperties(
            p => p.Tags.Contains(Tags.Time.Printed),
            new PropertyValue(DateTime.Now));

        Console.WriteLine("Properties added: " + affected);
        metadata.Save("output.pdf");
    }
}

در این مثال برچسب Tags.Time.Printed – برچسب برای تاریخ «چاپ شده» در دسته زمان – استفاده شده است. پیش‌شرط p.Tags.Contains(Tags.Time.Printed) ویژگی متادیتای شناخته‌شده چاپ شده را هدف می‌گیرد. اگر این ویژگی موجود نباشد، AddProperties آن را با مقدار ما (در اینجا DateTime.Now) اضافه می‌کند. متد تعداد ویژگی‌های افزوده‌شده را برمی‌گرداند که ما آن را چاپ می‌کنیم و سپس فایل را برای حفظ متادیتای جدید ذخیره می‌کنیم.

کپی ویژگی‌های متادیتا بر اساس برچسب

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

مراحل

  1. هر دو فایل منبع و هدف را با کلاس Metadata بارگذاری کنید.
  2. از متد CopyTo برای انتقال متادیتا از منبع به هدف استفاده کنید.
  3. فایل هدف را ذخیره کنید تا متادیتای کپی‌شده اعمال شود.
using (Metadata sourceMetadata = new Metadata("source.xlsx"))
using (Metadata targetMetadata = new Metadata("target.pptx"))
{
    // Copy only Author (Creator) and Creation Date metadata properties
    sourceMetadata.CopyTo(targetMetadata, p =>
        p.Tags.Contains(Tags.Person.Creator) ||
        p.Tags.Contains(Tags.Time.Created));

    // Save the changes
    targetMetadata.Save();
}

در این مثال فقط متادیتاهایی که برچسب‌های سازنده (نام نویسنده) و تاریخ ایجاد را دارند، از فایل Excel (source.xlsx) به ارائه PowerPoint (target.pptx) کپی می‌شوند. این کپی انتخابی به شما امکان کنترل دقیق بر متادیتاها را می‌دهد و اطمینان می‌دهد که اسناد تنها شامل متادیتای مورد نیاز هستند.

به‌روزرسانی ویژگی‌های متادیتا بر اساس برچسب

علاوه بر افزودن متادیتای جدید، معمولاً لازم است مقادیر متادیتای موجود را به‌روزرسانی کنید (به عنوان مثال، اصلاح نام نویسنده یا استانداردسازی تاریخ‌ها). GroupDocs.Metadata متد SetProperties() را برای این منظور فراهم می‌کند. این متد با استفاده از برچسب‌ها ویژگی‌های هدف را پیدا می‌کند و مقدارشان را به‌روز می‌سازد. اگر ویژگی هدف موجود نباشد، SetProperties می‌تواند آن را اضافه کند – به‌عبارتی ترکیبی از به‌روزرسانی و افزودن در یک گام.

مراحل

  1. فایل را در یک شیء Metadata بارگذاری کنید.
  2. متد SetProperties() را با فیلتر برچسبی و مقدار جدید PropertyValue فراخوانی کنید.
  3. تعداد ویژگی‌های تحت تأثیر (به‌روزرسانی‌شده یا افزوده‌شده) را بررسی کنید.
  4. در صورت نیاز فایل را ذخیره کنید.
using (Metadata metadata = new Metadata("source.pdf"))
{
    // Update all "Created" or "Modified" date properties to now
    int affected = metadata.SetProperties(
        p => p.Tags.Contains(Tags.Time.Created) || p.Tags.Contains(Tags.Time.Modified),
        new PropertyValue(DateTime.Now));

    Console.WriteLine("Properties updated or added: " + affected);
    metadata.Save("updated.pdf");
}

در پیش‌شرط، Tags.Time.Created و Tags.Time.Modified برچسب‌های تاریخ ایجاد و آخرین تغییر هستند. کد هر ویژگی متادیتایی که این برچسب‌ها را داشته باشد پیدا می‌کند و مقدار آن را به DateTime.Now تغییر می‌دهد. اگر مثلاً ویژگی تاریخ ایجاد در متادیتای فایل وجود نداشته باشد، کتابخانه آن را به‌عنوان یک ویژگی استاندارد برای آن فرمت اضافه می‌کند.

حذف متادیتا بر اساس برچسب

برای حفظ حریم خصوصی یا رعایت مقررات، ممکن است نیاز به حذف برخی متادیتاها (مانند نام نویسندگان یا اطلاعات شخصی) از اسناد داشته باشید. برچسب‌ها این امکان را می‌دهند که به‌سادگی متادیتای هدف را در فرمت‌های مختلف حذف کنید. متد RemoveProperties() همانند سایر متدها یک پیش‌شرط دریافت می‌کند و هر ورودی متادیتای منطبق را حذف می‌کند.

مراحل

  1. فایل را در یک شیء Metadata بارگذاری کنید.
  2. متد RemoveProperties() را با پیش‌شرط برچسبی فراخوانی کنید تا ویژگی‌های مورد نظر حذف شوند.
  3. تعداد ویژگی‌های حذف‌شده را که متد برمی‌گرداند، مرور کنید.
  4. فایل را ذخیره کنید تا تغییرات اعمال شوند.
using (Metadata metadata = new Metadata("source.docx"))
{
    // Remove properties that are tagged as Creator or Editor, or any string containing "John"
    int removedCount = metadata.RemoveProperties(p =>
        p.Tags.Contains(Tags.Person.Creator) ||
        p.Tags.Contains(Tags.Person.Editor) ||
        (p.Value.Type == MetadataPropertyType.String && p.Value.ToString().Contains("John"))
    );

    Console.WriteLine("Properties removed: " + removedCount);
    metadata.Save("cleaned.docx");
}

این پیش‌شرط معیارهای متعددی را ترکیب می‌کند: هر ویژگی که برچسب‌های سازنده یا ویرایشگر (هر دو در دسته شخص) را داشته باشد حذف می‌شود و همچنین هر متادیتای متنی که شامل «John» باشد حذف می‌شود. در سناریوهای واقعی می‌توانید از چنین منطق‌ّی برای پاکسازی اسناد از داده‌های شخصی (مانند نام نویسنده یا نام مشتری) استفاده کنید.

نتیجه‌گیری

در این مقاله نشان دادیم که چگونه ویژگی برچسب‌گذاری GroupDocs.Metadata برای .NET به شما اجازه می‌دهد تا متادیتا را به‌صورت یکپارچه اضافه، کپی، پیدا، به‌روزرسانی و حذف کنید در انواع مختلف اسناد. با بهره‌گیری از برچسب‌هایی مانند محتوا، شخص، زمان و غیره، می‌توانید جریان کاری بسازید که فایل‌ها را بر پایه متادیتای ثابت سازماندهی می‌کند، قابلیت جستجو را بهبود می‌بخشد (مثلاً یافتن همه فایل‌ها بر اساس نویسنده یا تاریخ) و خودکارسازی دسته‌بندی یا پاک‌سازی اسناد را امکان‌پذیر می‌سازد.

موارد مرتبط

دریافت نسخه آزمایشی رایگان

می‌توانید نسخه آزمایشی رایگان GroupDocs.Metadata برای .NET را از releases.groupdocs.com بارگیری کنید. همچنین می‌توانید یک لایسنس موقت برای امتحان همه ویژگی‌ها و عملکردها بدون محدودیت از اینجا دریافت کنید.