العمل مع خصائص الوثيقة
تسمح خصائص المستند بتخزين بعض المعلومات المفيدة حول مستندك. ويمكن تقسيم هذه الخصائص إلى مجموعتين:
- النظام أو المدمج الذي يحتوي على قيم مثل عنوان المستند واسم المؤلف وإحصائيات المستند وغيرها.
- معرف من قبل المستخدم أو مخصص، يتم توفيره كأزواج اسم وقيمة حيث يمكن للمستخدم تحديد كل من الاسم والقيمة.
من المفيد معرفة أن المعلومات المتعلقة بـ API ورقم الإصدار تتم كتابتها مباشرة لإخراج المستندات. على سبيل المثال، عند تحويل مستند إلى PDF، يقوم Aspose.Words بملء حقل “Application” بـ “Aspose.Words”، وحقل “PDF Producer” بـ “Aspose.Words for .NET YY.MN”، حيث يكون YY.M.N هو إصدار Aspose.Words المستخدم للتحويل. لمزيد من التفاصيل، راجع اسم المولد أو المنتج مدرج في مستندات الإخراج.
الوصول إلى خصائص المستند
للوصول إلى خصائص المستند في Aspose.Words، استخدم:
-
BuiltInDocumentProperties للحصول على الخصائص المضمنة.
-
CustomDocumentProperties للحصول على الخصائص المخصصة.
BuiltInDocumentProperties وCustomDocumentProperties عبارة عن مجموعات من كائنات DocumentProperty. يمكن الحصول على هذه الكائنات من خلال خاصية المفهرس بالاسم أو بالفهرس.
يوفر BuiltInDocumentProperties أيضًا إمكانية الوصول إلى خصائص المستند من خلال مجموعة من الخصائص المدخلة التي تُرجع قيمًا من النوع المناسب. يمكّنك CustomDocumentProperties من إضافة أو إزالة خصائص المستند من المستند.
تتيح لك فئة DocumentProperty الحصول على اسم وقيمة ونوع خاصية المستند. تقوم Value بإرجاع كائن، ولكن هناك مجموعة من الأساليب التي تسمح لك بتحويل قيمة الخاصية إلى نوع معين. بعد أن تتعرف على نوع الخاصية، يمكنك استخدام إحدى طرق DocumentProperty.ToXXX، مثل DocumentProperty.ToString وDocumentProperty.ToInt، للحصول على قيمة النوع المناسب.
يوضح مثال التعليمات البرمجية التالي كيفية تعداد كافة الخصائص المضمنة والمخصصة في مستند:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
string fileName = dataDir + "Properties.doc"; | |
Document doc = new Document(fileName); | |
Console.WriteLine("1. Document name: {0}", fileName); | |
Console.WriteLine("2. Built-in Properties"); | |
foreach (DocumentProperty prop in doc.BuiltInDocumentProperties) | |
Console.WriteLine("{0} : {1}", prop.Name, prop.Value); | |
Console.WriteLine("3. Custom Properties"); | |
foreach (DocumentProperty prop in doc.CustomDocumentProperties) | |
Console.WriteLine("{0} : {1}", prop.Name, prop.Value); |
في Microsoft Word، يمكنك الوصول إلى خصائص المستند باستخدام القائمة “ملف → خصائص”.

إضافة أو إزالة خصائص المستند
لا يمكنك إضافة أو إزالة خصائص المستند المضمنة باستخدام Aspose.Words. يمكنك فقط تغيير أو تحديث قيمها.
لإضافة خصائص مستند مخصصة باستخدام Aspose.Words، استخدم طريقة Add، وقم بتمرير اسم الخاصية الجديد وقيمة النوع المناسب. تقوم الطريقة بإرجاع كائن DocumentProperty المنشأ حديثًا.
لإزالة الخصائص المخصصة، استخدم طريقة Remove، وقم بتمرير اسم الخاصية المراد إزالتها، أو طريقة RemoveAt لإزالة الخاصية عن طريق الفهرس. يمكنك أيضًا إزالة كافة الخصائص باستخدام طريقة Clear.
يتحقق مثال التعليمات البرمجية التالي من وجود خاصية مخصصة تحمل اسمًا محددًا في المستند ويضيف المزيد من خصائص المستند المخصصة:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + "Properties.doc"); | |
CustomDocumentProperties props = doc.CustomDocumentProperties; | |
if (props["Authorized"] == null) | |
{ | |
props.Add("Authorized", true); | |
props.Add("Authorized By", "John Smith"); | |
props.Add("Authorized Date", DateTime.Today); | |
props.Add("Authorized Revision", doc.BuiltInDocumentProperties.RevisionNumber); | |
props.Add("Authorized Amount", 123.45); | |
} |
يوضح مثال التعليمات البرمجية التالي كيفية إزالة خاصية مستند مخصص:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + "Properties.doc"); | |
doc.CustomDocumentProperties.Remove("Authorized Date"); |
تحديث خصائص المستند المضمنة
لا يقوم Aspose.Words بتحديث خصائص المستند تلقائيًا، كما يفعل Microsoft Word مع بعض الخصائص، ولكنه يوفر طريقة لتحديث بعض خصائص المستند الإحصائية المضمنة. قم باستدعاء أسلوب UpdateWordCount لإعادة حساب الخصائص التالية وتحديثها:
قم بإنشاء خاصية مخصصة جديدة مرتبطة بالمحتوى
يوفر Aspose.Words طريقة AddLinkToContent لإنشاء خاصية مستند مخصصة جديدة مرتبطة بالمحتوى. تقوم هذه الخاصية بإرجاع كائن الخاصية الذي تم إنشاؤه حديثًا أو إرجاعه فارغًا إذا كان LinkSource غير صالح.
يوضح مثال التعليمات البرمجية التالي كيفية تكوين ارتباط إلى خاصية مخصصة:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + "test.docx"); | |
// Retrieve a list of all custom document properties from the file. | |
CustomDocumentProperties customProperties = doc.CustomDocumentProperties; | |
// Add linked to content property. | |
DocumentProperty customProperty = customProperties.AddLinkToContent("PropertyName", "BookmarkName"); | |
// Also, accessing the custom document property can be performed by using the property name. | |
customProperty = customProperties["PropertyName"]; | |
// Check whether the property is linked to content. | |
bool isLinkedToContent = customProperty.IsLinkToContent; | |
// Get the source of the property. | |
string source = customProperty.LinkSource; | |
// Get the value of the property. | |
string value = customProperty.Value.ToString(); |
الحصول على متغيرات الوثيقة
يمكنك الحصول على مجموعة من متغيرات المستند باستخدام خاصية Variables. أسماء وقيم المتغيرات هي سلاسل.
يوضح مثال التعليمات البرمجية التالي كيفية تعداد متغيرات المستند:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithDocument(); | |
// Load the template document. | |
Document doc = new Document(dataDir + "TestFile.doc"); | |
string variables = ""; | |
foreach (KeyValuePair<string, string> entry in doc.Variables) | |
{ | |
string name = entry.Key.ToString(); | |
string value = entry.Value.ToString(); | |
if (variables == "") | |
{ | |
// Do something useful. | |
variables = "Name: " + name + "," + "Value: {1}" + value; | |
} | |
else | |
{ | |
variables = variables + "Name: " + name + "," + "Value: {1}" + value; | |
} | |
} |
إزالة المعلومات الشخصية من المستند
إذا كنت ترغب في مشاركة مستند Word مع أشخاص آخرين، فقد ترغب في إزالة المعلومات الشخصية مثل اسم المؤلف والشركة. للقيام بذلك، استخدم خاصية RemovePersonalInformation لتعيين علامة تشير إلى أن Microsoft Word سيقوم بإزالة جميع معلومات المستخدم من التعليقات والمراجعات وخصائص المستند عند حفظ المستند.
يوضح مثال التعليمات البرمجية التالي كيفية إزالة المعلومات الشخصية:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + "Properties.doc"); | |
doc.RemovePersonalInformation = true; | |
dataDir = dataDir + "RemovePersonalInformation_out.docx"; | |
doc.Save(dataDir); |