مقدمه
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، روی ویندوز، لینوکس و macOS کار میکند. آن را از طریق NuGet نصب کنید، یا کتابخانه را از منبع با یک فرمان dotnet build بسازید (به راهنمای Quick Start زیر مراجعه کنید).
آنچه این کتابخانه را از یک کتابخانهٔ معمولی متنباز سند متمایز میکند این است که بازنویسی یا بستهبندی نیست. Aspose.Words FOSS برای .NET پایهٔ واقعی Aspose.Words است — همان موتور سندی که از سال 2003 در تولید اسناد Word را پردازش میکند — که به یک هستهٔ رایگان با مجوز 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 خود بهصورت round‑trip باقی میمانند. امضاهای دیجیتال موجود میتوانند از طریق 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 Reporting، مقایسهٔ اسناد، ایجاد امضای دیجیتال جدید، و زیرمجموعهسازی فونتهای جاسازیشده گنجانده نشدهاند. اینها همان زیرسیستمهایی هستند که از پایهٔ تجاری حذف شدهاند تا این نسخه رایگان باقی بماند.
منبع باز و مجوزدهی
Aspose.Words FOSS برای .NET تحت مجوز MIT منتشر شده است، رایگان برای استفاده تجاری و شخصی بدون حقالزحمه یا محدودیت توزیع مجدد. کد منبع کامل در GitHub در Aspose.Words FOSS برای مخزن .NET.