導入
Aspose.Words FOSS for .NET が利用可能になりました: Microsoft Word のインストール不要で、純粋な C# で Word 文書の作成、読み取り、編集を行う無料のオープンソース .NET ライブラリです。テンプレートからレポートやレターを生成したり、既存の .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 for .NET は本物の Aspose.Words コードベースであり、2003 年から本番環境で Word 文書を処理してきた同じ文書エンジンを、無料の MIT ライセンスコアに縮小したものです。このエディションでは機能が足りず、ページレイアウトやレンダリング、追加のフォーマットコンバータが必要な開発者は、コードを書き直すことなく商用の Aspose.Words for .NET に移行できます。なぜなら、基盤となる API は同一だからです。
主な機能
文書の作成と編集
new Document() と高レベルの DocumentBuilder を使用してゼロから文書を構築するか、new Document(fileName) で既存の .docx ファイルを開きます。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 for .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 | ✓ | ✓ |
| フラット OPC (すべてのバリエーション) | (さまざま) | ✓ | ✓ |
| Markdown | .md | ✓ | ✓ |
| Text | .txt | ✓ | ✓ |
このエディションは意図的にページレイアウトとレンダリングを除外しています — PDF、XPS、画像エクスポートはなく、印刷もサポートされません。そのため、ページ番号などのレイアウト依存フィールド値は計算されずプレースホルダーとして評価されます。追加のフォーマットコンバータ(DOC、RTF、ODT、HTML、EPUB、MHTML、MOBI、AZW3、そして WordML)は読み書きできず、メールマージ実行、LINQ Reporting、文書比較、新しいデジタル署名の作成、埋め込みフォントのサブセット化も含まれていません。これらは、エディションを無料に保つために商用コードベースから削除されたのと同じサブシステムです。
オープンソース & ライセンス
Aspose.Words FOSS for .NET は MIT ライセンスの下でリリースされており、商用・個人利用ともにロイヤリティや再配布制限なしで無料です。完全なソースは GitHub の Aspose.Words FOSS for .NET リポジトリ にあります。