Einführung
Aspose.Words FOSS für .NET ist jetzt verfügbar: eine kostenlose, Open-Source .NET-Bibliothek zum Erstellen, Lesen und Bearbeiten von Word-Dokumenten in reinem C#, ohne dass eine Microsoft-Word-Installation erforderlich ist. Sie richtet sich an Entwickler, die Berichte und Briefe aus Vorlagen generieren, Inhalte aus bestehenden .docx-Dateien lesen und umstrukturieren oder Word-Dokumente im Rahmen einer Verarbeitungspipeline in Markdown oder Nur-Text konvertieren müssen, ohne dafür ein kommerzielles SDK lizenzieren zu müssen.
Die Bibliothek wird unter der MIT-Lizenz veröffentlicht und hat keine nativen Abhängigkeiten – alles läuft im verwalteten Code. Sie richtet sich an .NET Standard 2.0, sodass sie auf .NET Framework 4.6.2+ und .NET 6, 8 und 10 unter Windows, Linux und macOS funktioniert. Installieren Sie sie über NuGet oder bauen Sie die Bibliothek aus dem Quellcode mit einem einzigen dotnet build-Befehl (siehe Schnellstart unten).
Was dieses Projekt von einer typischen neuen Open-Source-Dokumentenbibliothek unterscheidet, ist, dass es weder eine Neuimplementierung noch ein Wrapper ist. Aspose.Words FOSS für .NET ist der echte Aspose.Words-Code-Base – dieselbe Dokumenten-Engine, die Word-Dokumente seit 2003 in der Produktion verarbeitet – reduziert auf einen kostenlosen, MIT-lizenzierten Kern. Entwickler, die diese Edition übersteigen und Seitenlayout, Rendering oder zusätzliche Formatkonverter benötigen, können auf die kommerzielle Aspose.Words für .NET umsteigen, ohne ihren Code neu zu schreiben, da es dieselbe zugrunde liegende API ist.
Hauptfunktionen
Dokumentenerstellung und -bearbeitung
Erstellen Sie Dokumente von Grund auf mit new Document() und dem hochrangigen DocumentBuilder oder öffnen Sie vorhandene .docx-Dateien mit new Document(fileName). DocumentBuilder bietet sequentielle Erstellungsmethoden wie Write(), Writeln(), InsertParagraph() und InsertBreak() sowie Formatierungseigenschaften (Font, ParagraphFormat, PageSetup), die beim Einfügen von Inhalten angewendet werden. Für den Zugriff auf niedrigerer Ebene können Sie den Dokumentbaum direkt über die Knoten Section, Paragraph, Run und Table durchlaufen oder DocumentVisitor unterklassen, um jeden Knotentyp in einem Durchlauf zu verarbeiten.
Tabellen und Listen
Tabellen werden aus den Knoten Table, Row und Cell erstellt. Table.SetBorders(), Table.SetShading() und Table.AutoFit() formatieren eine ganze Tabelle auf einmal, während Table.Rows und der zeilenweise Zugriff über Cell feinere Kontrolle ermöglichen. Nummerierte und Aufzählungslisten werden über ListCollection und ListFormat verarbeitet: Wenden Sie einen integrierten Stil mit ListFormat.ApplyBulletDefault() oder ApplyNumberDefault() an oder registrieren Sie eine benutzerdefinierte Listendefinition mit ListCollection.Add().
Nachverfolgte Änderungen und Dokumentenschutz
Rufen Sie Document.StartTrackRevisions() vor der Bearbeitung auf, um Einfügungen, Löschungen und Formatierungsänderungen zu protokollieren, und prüfen, akzeptieren oder ablehnen Sie diese anschließend über RevisionCollection (AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria)) oder akzeptieren Sie alles auf einmal mit Document.AcceptAllRevisions(). Document.Protect() wendet Passwortschutz oder Nur-Lesen-Durchsetzung mithilfe des Enums DocumentSecurity (ReadOnlyEnforced, ReadOnlyRecommended, PasswordProtected und verwandter Werte) an, und Document.Unprotect() hebt dies auf.
Felder, Makros und digitale Signaturen
Die Feldauswertungs-Engine aktualisiert Felder wie FieldDate (das DATE-Feld) und FieldDocProperty (das DOCPROPERTY-Feld) direkt über Document.UpdateFields() — Felder, die vom Seitenlayout abhängen, wie Seitenzahlen, werden zu Platzhalterwerten ausgewertet, da das Seitenlayout nicht Teil dieser Ausgabe ist. DOCM und DOTM Dateien round-trip mit ihren VBA-Projekten intakt. Vorhandene digitale Signaturen können über DigitalSignatureCollection und DigitalSignature (IsValid, SubjectName, IssuerName, SignTime) überprüft werden, um festzustellen, ob ein Dokument signiert ist und nicht manipuliert wurde; das Erstellen neuer Signaturen ist nicht Teil dieser Ausgabe.
Diagramme
Fügen Sie ein Diagramm in ein Dokument mit DocumentBuilder.InsertChart() ein und konfigurieren Sie anschließend seine Datenreihen über das zurückgegebene Chart-Objekt.
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");
Schnellstart
Aspose.Words FOSS für .NET ist über NuGet verfügbar:
dotnet add package Aspose.Words.FOSSUm stattdessen aus dem Quellcode zu bauen:
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
Fügen Sie dann Ihrer Anwendung einen Projektverweis auf Aspose.Words.csproj hinzu. Sobald der Verweis gesetzt ist, erstellen Sie ein Dokument mit einem Diagramm und speichern es als 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");
Unterstützte Formate
| Format | Erweiterung | Lesen | Schreiben |
|---|---|---|---|
| DOCX | .docx | ✓ | ✓ |
| DOCM | .docm | ✓ | ✓ |
| DOTX | .dotx | ✓ | ✓ |
| DOTM | .dotm | ✓ | ✓ |
| Flat OPC (alle Varianten) | (verschiedene) | ✓ | ✓ |
| Markdown | .md | ✓ | ✓ |
| Text | .txt | ✓ | ✓ |
Diese Ausgabe schließt bewusst Seitenlayout und Rendering aus — kein PDF, XPS oder Bildexport und kein Druck, was außerdem bedeutet, dass layoutabhängige Feldwerte wie Seitenzahlen zu Platzhaltern werden, anstatt berechnet zu werden. Die zusätzlichen Formatkonverter (DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3 und WordML) werden nicht gelesen oder geschrieben, und die Ausführung von Seriendruck, LINQ Reporting, Dokumentvergleich, das Erstellen neuer digitaler Signaturen sowie das Subsetting eingebetteter Schriftarten sind nicht enthalten. Dies sind dieselben Subsysteme, die aus dem kommerziellen Codebestand entfernt wurden, um diese Ausgabe kostenlos zu halten.
Open Source & Lizenzierung
Aspose.Words FOSS für .NET wird unter der MIT-Lizenz veröffentlicht, kostenlos für kommerzielle und private Nutzung, ohne Lizenzgebühren oder Weiterverbreitungsbeschränkungen. Der vollständige Quellcode ist auf GitHub im Aspose.Words FOSS für .NET Repository verfügbar.