Вступ

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 Reporting, порівняння документів, створення нових цифрових підписів та підмножини вбудованих шрифтів не включені. Це ті самі підсистеми, які були видалені з комерційної кодової бази, щоб залишити це видання безкоштовним.


Відкритий код та ліцензування

Aspose.Words FOSS для .NET випускається під ліцензією MIT, безкоштовно як для комерційного, так і для особистого використання без роялті та обмежень на розповсюдження. Повний вихідний код доступний на GitHub у Aspose.Words FOSS для .NET repository.


Початок роботи

Пов’язані ресурси