مقدمة
Aspose.Words FOSS لـ .NET متاح الآن: مكتبة .NET مجانية مفتوحة المصدر لإنشاء وقراءة وتحرير مستندات Word باستخدام C# النقي، دون الحاجة إلى تثبيت Microsoft Word. تستهدف المطورين الذين يحتاجون إلى إنشاء تقارير ورسائل من القوالب، قراءة وإعادة هيكلة المحتوى من ملفات .docx الحالية، أو تحويل مستندات Word إلى Markdown أو نص عادي كجزء من خط معالجة، دون الحاجة إلى ترخيص SDK تجاري للقيام بذلك.
تم إصدار المكتبة تحت رخصة MIT ولا توجد لديها تبعيات أصلية — كل شيء يعمل في كود مُدار. تستهدف .NET Standard 2.0، لذا تعمل على .NET Framework 4.6.2+ و.NET 6 و8 و10، على Windows وLinux وmacOS. قم بتثبيتها عبر NuGet، أو ابنِ المكتبة من المصدر باستخدام أمر dotnet build واحد (انظر دليل البدء السريع أدناه).
ما يميز هذا عن مكتبة المستندات المفتوحة المصدر الجديدة النموذجية هو أنه ليس إعادة كتابة أو غلافًا. Aspose.Words FOSS لـ .NET هو قاعدة الشيفرة الأصلية Aspose.Words — نفس محرك المستندات الذي يعالج مستندات Word في الإنتاج منذ عام 2003 — تم تقليصه إلى نواة مجانية مرخصة بـ MIT. يمكن للمطورين الذين تجاوزوا هذه النسخة ويحتاجون إلى تخطيط الصفحات أو العرض أو محولات الصيغ الإضافية الانتقال إلى النسخة التجارية Aspose.Words لـ .NET دون إعادة كتابة الكود الخاص بهم، لأن ذلك هو نفس API الأساسي.
الميزات الرئيسية
إنشاء وتحرير المستندات
قم بإنشاء المستندات من الصفر باستخدام new Document() وDocumentBuilder عالي المستوى، أو افتح ملفات .docx الموجودة باستخدام new Document(fileName). يوفر DocumentBuilder طرق تأليف تسلسلية مثل Write()، Writeln()، InsertParagraph()، وInsertBreak()، بالإضافة إلى خصائص تنسيق (Font، ParagraphFormat، PageSetup) التي تُطبق على المحتوى عند إدراجه. للوصول إلى مستوى أدنى، تجول في شجرة المستند مباشرة عبر عقد Section، Paragraph، Run، وTable، أو أنشئ فئة فرعية من DocumentVisitor لمعالجة كل نوع من العقد في تمريرة واحدة.
الجداول والقوائم
يتم بناء الجداول من عقد Table وRow وCell. تقوم Table.SetBorders() وTable.SetShading() وTable.AutoFit() بتنسيق جدول كامل مرة واحدة، بينما يمنح Table.Rows والوصول إلى Cell لكل صف تحكمًا أدق. القوائم المرقمة والقوائم النقطية تمر عبر ListCollection وListFormat: تطبيق نمط مدمج باستخدام ListFormat.ApplyBulletDefault() أو ApplyNumberDefault()، أو تسجيل تعريف قائمة مخصص باستخدام ListCollection.Add().
التغييرات المتتبعة وحماية المستند
استدعِ Document.StartTrackRevisions() قبل التحرير لتسجيل الإدخالات والحذف وتغييرات التنسيق، ثم افحصها أو اقبلها أو ارفضها عبر RevisionCollection (AcceptAll()، RejectAll()، Accept(criteria)، Reject(criteria))، أو اقبل جميعها مرة واحدة باستخدام Document.AcceptAllRevisions(). يقوم Document.Protect() بتطبيق حماية كلمة مرور أو فرض القراءة فقط باستخدام تعداد DocumentSecurity (ReadOnlyEnforced، ReadOnlyRecommended، PasswordProtected، والقيم ذات الصلة)، وDocument.Unprotect() يعكس ذلك.
الحقول والماكرو والتواقيع الرقمية
يقوم محرك تقييم الحقول بتحديث حقول مثل FieldDate (حقل DATE) وFieldDocProperty (حقل DOCPROPERTY) في موضعها عبر Document.UpdateFields() — الحقول التي تعتمد على تخطيط الصفحة، مثل أرقام الصفحات، تُقيم إلى قيم نائبة لأن تخطيط الصفحة ليس جزءًا من هذه النسخة. ملفات DOCM وDOTM تمر في دورة كاملة مع مشاريع VBA الخاصة بها سليمة. يمكن فحص التواقيع الرقمية الموجودة عبر DigitalSignatureCollection وDigitalSignature (IsValid، SubjectName، IssuerName، SignTime) للتأكد ما إذا كان المستند موقّعًا ولم يتم العبث به؛ إنشاء توقيعات جديدة ليس جزءًا من هذه النسخة.
المخططات
أدخل مخططًا في مستند باستخدام DocumentBuilder.InsertChart()، ثم قم بتكوين سلسلة البيانات الخاصة به عبر كائن Chart المُرجع.
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
// Delete default generated series.
chart.Series.Clear();
string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
doc.Save("chart.docx");
البدء السريع
Aspose.Words FOSS لـ .NET متاح عبر NuGet:
dotnet add package Aspose.Words.FOSSلبناء من المصدر بدلاً من ذلك:
git clone https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git
cd Aspose.Words-FOSS-for-.NET
dotnet build Aspose.Words.sln -c Release
ثم أضف مرجع مشروع إلى Aspose.Words.csproj من تطبيقك. مع وجود المرجع، أنشئ مستندًا يحتوي على مخطط واحفظه كـ DOCX:
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
// Delete default generated series.
chart.Series.Clear();
string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
doc.Save("chart.docx");
Console.WriteLine("Saved chart.docx");
الصيغ المدعومة
| تنسيق | امتداد | قراءة | كتابة |
|---|---|---|---|
| DOCX | .docx | ✓ | ✓ |
| DOCM | .docm | ✓ | ✓ |
| DOTX | .dotx | ✓ | ✓ |
| DOTM | .dotm | ✓ | ✓ |
| Flat OPC (جميع المتغيرات) | (متنوعة) | ✓ | ✓ |
| Markdown | .md | ✓ | ✓ |
| Text | .txt | ✓ | ✓ |
هذه النسخة تستبعد عمدًا تخطيط الصفحة وعرضها — لا يوجد تصدير إلى PDF أو XPS أو صور، ولا طباعة، مما يعني أيضًا أن قيم الحقول المعتمدة على التخطيط مثل أرقام الصفحات تُقيَّم كعناصر نائبة بدلاً من أن تُحسب. محولات الصيغ الإضافية (DOC، RTF، ODT، HTML، EPUB، MHTML، MOBI، AZW3، و WordML) غير مقروءة أو مكتوبة، ولا تشمل تنفيذ دمج البريد، تقارير LINQ، مقارنة المستندات، إنشاء توقيعات رقمية جديدة، وتجزئة الخطوط المضمنة. هذه هي نفس الأنظمة الفرعية التي أُزيلت من قاعدة الشيفرة التجارية للحفاظ على مجانية هذه النسخة.
المصدر المفتوح والترخيص
Aspose.Words FOSS لـ .NET صُدر بموجب رخصة MIT، مجانًا للاستخدام التجاري والشخصي دون أي عوائد أو قيود على إعادة التوزيع. الشيفرة الكاملة متوفرة على GitHub في Aspose.Words FOSS لـ .NET المستودع.