Wprowadzenie
Aspose.Words FOSS dla .NET jest już dostępny: darmowa, otwarto‑źródłowa biblioteka .NET do tworzenia, odczytywania i edytowania dokumentów Word w czystym C#, bez konieczności instalacji Microsoft Word. Jest skierowana do programistów, którzy muszą generować raporty i listy z szablonów, czytać i przekształcać zawartość istniejących plików .docx, lub konwertować dokumenty Word na Markdown lub zwykły tekst jako część potoku przetwarzania, bez licencjonowania komercyjnego SDK do tego celu.
Biblioteka jest udostępniona na licencji MIT i nie ma natywnych zależności — wszystko działa w kodzie zarządzanym. Celuje w .NET Standard 2.0, więc działa na .NET Framework 4.6.2+ oraz .NET 6, 8 i 10, na Windows, Linux i macOS. Zainstaluj ją za pomocą NuGet lub zbuduj bibliotekę ze źródeł jedną komendą dotnet build (zobacz Quick Start poniżej).
Co odróżnia to od typowej nowej otwarto‑źródłowej biblioteki dokumentów, to fakt, że nie jest to przepisanie ani nakładka. Aspose.Words FOSS dla .NET to prawdziwa baza kodowa Aspose.Words — ten sam silnik dokumentów, który przetwarza dokumenty Word w produkcji od 2003 roku — zredukowany do darmowego, licencjonowanego na MIT rdzenia. Programiści, którym ta edycja przestaje wystarczać i potrzebują układu stron, renderowania lub dodatkowych konwerterów formatów, mogą przejść na wersję komercyjną. Aspose.Words dla .NET bez przepisywania ich kodu, ponieważ jest to ten sam podstawowy API.
Kluczowe funkcje
Tworzenie i edycja dokumentów
Twórz dokumenty od podstaw za pomocą new Document() oraz wysokopoziomowego DocumentBuilder, albo otwieraj istniejące pliki .docx przy użyciu new Document(fileName). DocumentBuilder udostępnia sekwencyjne metody tworzenia, takie jak Write(), Writeln(), InsertParagraph() i InsertBreak(), wraz z właściwościami formatowania (Font, ParagraphFormat, PageSetup), które stosowane są do treści w momencie wstawiania. Dla dostępu na niższym poziomie przeglądaj drzewo dokumentu bezpośrednio przez węzły Section, Paragraph, Run i Table, lub utwórz podklasę DocumentVisitor, aby przetworzyć każdy typ węzła w jednym przebiegu.
Tabele i listy
Tabele są budowane z węzłów Table, Row i Cell. Table.SetBorders(), Table.SetShading() oraz Table.AutoFit() formatują całą tabelę jednocześnie, podczas gdy Table.Rows i dostęp do Cell w poszczególnych wierszach dają większą kontrolę. Listy numerowane i wypunktowane obsługiwane są przez ListCollection i ListFormat: zastosuj wbudowany styl za pomocą ListFormat.ApplyBulletDefault() lub ApplyNumberDefault(), albo zarejestruj własną definicję listy przy użyciu ListCollection.Add().
Śledzone zmiany i ochrona dokumentu
Wywołaj Document.StartTrackRevisions() przed edycją, aby rejestrować wstawienia, usunięcia i zmiany formatowania, a następnie przeglądać, akceptować lub odrzucać je za pomocą RevisionCollection (AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria)), lub zaakceptować wszystko jednocześnie przy pomocy Document.AcceptAllRevisions(). Document.Protect() stosuje ochronę hasłem lub wymuszenie trybu tylko do odczytu przy użyciu wyliczenia DocumentSecurity (ReadOnlyEnforced, ReadOnlyRecommended, PasswordProtected i powiązane wartości), a Document.Unprotect() odwraca to.
Pola, makra i podpisy cyfrowe
Silnik oceny pól aktualizuje pola takie jak FieldDate (pole DATE) i FieldDocProperty (pole DOCPROPERTY) bezpośrednio przy użyciu Document.UpdateFields() — pola zależne od układu strony, takie jak numery stron, zwracają wartości zastępcze, ponieważ układ strony nie jest częścią tej edycji. Pliki DOCM i DOTM zachowują się w trybie round‑trip z niezmienionymi projektami VBA. Istniejące podpisy cyfrowe można sprawdzić przy pomocy DigitalSignatureCollection i DigitalSignature (IsValid, SubjectName, IssuerName, SignTime), aby potwierdzić, czy dokument jest podpisany i nie został podmieniony; tworzenie nowych podpisów nie jest częścią tej edycji.
Wykresy
Wstaw wykres do dokumentu za pomocą DocumentBuilder.InsertChart(), a następnie skonfiguruj jego serie danych przy użyciu zwróconego obiektu 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");
Szybki start
Aspose.Words FOSS for .NET jest dostępny poprzez NuGet:
dotnet add package Aspose.Words.FOSSAby zamiast tego zbudować z kodu źródłowego:
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
Następnie dodaj odwołanie do projektu Aspose.Words.csproj w swojej aplikacji. Po dodaniu odwołania, utwórz dokument z wykresem i zapisz go jako 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");
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| DOCX | .docx | ✓ | ✓ |
| DOCM | .docm | ✓ | ✓ |
| DOTX | .dotx | ✓ | ✓ |
| DOTM | .dotm | ✓ | ✓ |
| Flat OPC (wszystkie warianty) | (różne) | ✓ | ✓ |
| Markdown | .md | ✓ | ✓ |
| Text | .txt | ✓ | ✓ |
Ta edycja celowo pomija układ strony i renderowanie — brak eksportu do PDF, XPS ani obrazów oraz brak drukowania, co oznacza również, że wartości pól zależne od układu, takie jak numery stron, są zastępowane symbolami zastępczymi zamiast być obliczane. Dodatkowe konwertery formatów (DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3 i WordML) nie są odczytywane ani zapisywane, a wykonywanie scalania korespondencji, raportowanie LINQ, porównywanie dokumentów, tworzenie nowych podpisów cyfrowych oraz podzestawianie wbudowanych czcionek nie są zawarte. Są to te same podsystemy usunięte z komercyjnej bazy kodu, aby utrzymać tę edycję darmową.
Open Source i licencjonowanie
Aspose.Words FOSS dla .NET jest udostępniony na licencji MIT, darmowy zarówno do użytku komercyjnego, jak i osobistego, bez opłat licencyjnych ani ograniczeń w dystrybucji. Pełne źródło jest dostępne na GitHubie w Aspose.Words FOSS dla .NET repozytorium.