Table of contents

نظرة عامة

إدارة بيانات التعريف للوثائق عبر صيغ ملفات متعددة يمكن أن تكون صعبة. GroupDocs.Metadata for .NET يبسط ذلك من خلال توفير نظام وسوم لتوحيد خصائص البيانات الوصفية الشائعة (مثل العنوان، المؤلف، تاريخ الإنشاء) تحت وسوم. في هذا الدليل الإرشادي، سنستكشف كيفية العثور على البيانات الوصفية، إضافتها، نسخها، تحديثها، وإزالتها باستخدام الوسوم مع GroupDocs.Metadata for .NET.

GroupDocs.Metadata يستخدم الوسوم لتصنيف خصائص البيانات الوصفية المهمة في ملف، بغض النظر عن صيغة المستند أو معيار البيانات الوصفية. كل وسم ينتمي إلى فئة تجمع وسومًا ذات صلة لتسهيل الاكتشاف.

على سبيل المثال:

  • Content Tags: تصف محتوى الملف (مثل اللغة، النوع، الموضوع، التقييم)
  • Person Tags: تحدد الأشخاص أو المؤسسات المرتبطة بالمحتوى (مثل منشئ المستند، المحرر، الشركة)
  • Time Tags: تمثل الطوابع الزمنية في دورة حياة الملف (مثل تاريخ الإنشاء، وقت التعديل الأخير، تاريخ الطباعة)
  • (فئات أخرى تشمل Legal، Origin، Tool، إلخ، كل منها يجمع وسومًا ذات صلة.)

باستخدام هذه الوسوم، يمكنك البحث في البيانات الوصفية ومعالجتها بطريقة موحدة عبر مستندات Word، ملفات PDF، الصور، وأكثر. على سبيل المثال، وسم “Author” أو “Creator” في فئة Person سيتطابق مع خاصية المؤلف في مستند 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}");
    }
}

إضافة خصائص البيانات الوصفية حسب العلامة

أحيانًا قد يفتقد الملف بعض البيانات الوصفية (مثل عدم تسجيل “Last Printed Date”). باستخدام 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 – الوسم لتاريخ “Printed” ضمن فئة Time. الشرط 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();
}

في هذا المثال، سيتم نسخ البيانات الوصفية التي تحمل وسوم Creator (اسم المؤلف) وCreated Date فقط من ملف 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");
}

هذا الشرط يجمع بين عدة معايير: أي خاصية مُعلمة كـ Creator أو Editor (كلاهما ضمن فئة Person) ستُزال، بالإضافة إلى أي بيانات وصفية نصية تحتوي على كلمة “John”. في سيناريو واقعي، قد تستخدم مثل هذه المنطق لتنظيف المستندات من البيانات الشخصية (مثل أسماء المؤلفين أو أسماء العملاء).

الخلاصة

في هذه المقالة، أظهرنا كيف تسمح ميزة الوسوم في GroupDocs.Metadata for .NET لك بإضافة، نسخ، العثور، تحديث، وإزالة البيانات الوصفية بطريقة موحدة عبر أنواع متعددة من المستندات. من خلال الاستفادة من وسوم مثل Content، Person، Time، إلخ، يمكنك بناء سير عمل ينظم الملفات ببيانات وصفية متسقة، يحسن قابلية البحث (مثلاً العثور على جميع الملفات حسب المؤلف أو التاريخ)، ويُؤتمت تصنيف المستندات أو تنظيفها.

انظر أيضًا

احصل على نسخة تجريبية مجانية

يمكنك تنزيل نسخة تجريبية مجانية من GroupDocs.Metadata for .NET من releases.groupdocs.com. يمكنك أيضًا الحصول على ترخيص مؤقت لتجربة جميع الميزات والوظائف دون قيود من هنا.