Giới thiệu
Aspose.Words FOSS cho .NET hiện đã có sẵn: một thư viện .NET miễn phí, mã nguồn mở để tạo, đọc và chỉnh sửa tài liệu Word trong C# thuần túy, không cần cài đặt Microsoft Word. Thư viện này hướng tới các nhà phát triển cần tạo báo cáo và thư từ từ mẫu, đọc và tái cấu trúc nội dung từ các tệp .docx hiện có, hoặc chuyển đổi tài liệu Word sang Markdown hoặc văn bản thuần túy như một phần của quy trình xử lý, mà không phải mua giấy phép SDK thương mại để thực hiện.
Thư viện được phát hành dưới giấy phép MIT và không có phụ thuộc gốc — mọi thứ chạy trong mã quản lý. Nó nhắm tới .NET Standard 2.0, vì vậy hoạt động trên .NET Framework 4.6.2+ và .NET 6, 8 và 10, trên Windows, Linux và macOS. Cài đặt nó qua NuGet, hoặc xây dựng thư viện từ nguồn bằng một lệnh dotnet build duy nhất (xem Quick Start bên dưới).
Điều làm cho nó khác biệt so với một thư viện tài liệu mã nguồn mở mới điển hình là nó không phải là một bản viết lại hay một lớp bao bọc. Aspose.Words FOSS cho .NET là mã nguồn thực sự Aspose.Words — cùng một engine tài liệu đã xử lý các tài liệu Word trong môi trường sản xuất từ năm 2003 — được rút gọn thành một lõi miễn phí, có giấy phép MIT. Các nhà phát triển mà phiên bản này không còn đáp ứng và cần bố cục trang, render, hoặc các bộ chuyển đổi định dạng bổ sung có thể chuyển sang phiên bản thương mại Aspose.Words cho .NET mà không cần viết lại mã của họ, vì nó là cùng một API nền tảng.
Các tính năng chính
Tạo và chỉnh sửa tài liệu
Tạo tài liệu từ đầu bằng new Document() và lớp cao cấp DocumentBuilder, hoặc mở các tệp .docx hiện có bằng new Document(fileName). DocumentBuilder cung cấp các phương pháp viết tuần tự như Write(), Writeln(), InsertParagraph(), và InsertBreak(), cùng với các thuộc tính định dạng (Font, ParagraphFormat, PageSetup) áp dụng cho nội dung khi chèn. Đối với truy cập cấp thấp hơn, duyệt cây tài liệu trực tiếp qua các nút Section, Paragraph, Run và Table, hoặc kế thừa DocumentVisitor để xử lý mọi loại nút trong một lần duyệt.
Bảng và Danh sách
Bảng được xây dựng từ các nút Table, Row và Cell. Table.SetBorders(), Table.SetShading() và Table.AutoFit() định dạng toàn bộ bảng cùng một lúc, trong khi Table.Rows và việc truy cập Cell theo từng hàng cho phép kiểm soát chi tiết hơn. Các danh sách đánh số và có dấu đầu dòng đi qua ListCollection và ListFormat: áp dụng kiểu dựng sẵn bằng ListFormat.ApplyBulletDefault() hoặc ApplyNumberDefault(), hoặc đăng ký định nghĩa danh sách tùy chỉnh bằng ListCollection.Add().
Theo dõi Thay đổi và Bảo vệ Tài liệu
Gọi Document.StartTrackRevisions() trước khi chỉnh sửa để ghi lại các chèn, xóa và thay đổi định dạng, sau đó kiểm tra, chấp nhận hoặc từ chối chúng thông qua RevisionCollection (AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria)), hoặc chấp nhận tất cả cùng một lúc bằng Document.AcceptAllRevisions(). Document.Protect() áp dụng bảo vệ bằng mật khẩu hoặc thực thi chỉ‑đọc bằng enum DocumentSecurity (ReadOnlyEnforced, ReadOnlyRecommended, PasswordProtected và các giá trị liên quan), và Document.Unprotect() đảo ngược.
Trường, Macro và Chữ ký số
Công cụ đánh giá trường cập nhật các trường như FieldDate (trường DATE) và FieldDocProperty (trường DOCPROPERTY) tại chỗ thông qua Document.UpdateFields() — các trường phụ thuộc vào bố cục trang, chẳng hạn như số trang, sẽ trả về giá trị tạm thời vì bố cục trang không có trong phiên bản này. Các tệp DOCM và DOTM có thể quay lại với dự án VBA vẫn nguyên vẹn. Chữ ký số hiện có có thể được kiểm tra qua DigitalSignatureCollection và DigitalSignature (IsValid, SubjectName, IssuerName, SignTime) để xác nhận tài liệu có được ký và không bị giả mạo; việc tạo chữ ký mới không thuộc phạm vi của phiên bản này.
Biểu đồ
Chèn một biểu đồ vào tài liệu bằng DocumentBuilder.InsertChart(), sau đó cấu hình chuỗi dữ liệu của nó thông qua đối tượng Chart được trả về.
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");
Bắt đầu nhanh
Aspose.Words FOSS cho .NET có sẵn qua NuGet:
dotnet add package Aspose.Words.FOSSĐể biên dịch từ mã nguồn thay thế:
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
Sau đó thêm một tham chiếu dự án tới Aspose.Words.csproj từ ứng dụng của bạn. Khi tham chiếu đã được thêm, tạo một tài liệu có biểu đồ và lưu nó dưới dạng 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");
Định dạng được hỗ trợ
| Định dạng | Mở rộng | Đọc | Ghi |
|---|---|---|---|
| DOCX | .docx | ✓ | ✓ |
| DOCM | .docm | ✓ | ✓ |
| DOTX | .dotx | ✓ | ✓ |
| DOTM | .dotm | ✓ | ✓ |
| Flat OPC (tất cả các biến thể) | (khác nhau) | ✓ | ✓ |
| Markdown | .md | ✓ | ✓ |
| Text | .txt | ✓ | ✓ |
Bản phát hành này cố ý loại bỏ việc bố trí trang và render — không hỗ trợ xuất PDF, XPS hoặc hình ảnh, và không hỗ trợ in, đồng thời các giá trị trường phụ thuộc vào bố cục như số trang sẽ chỉ là chỗ giữ chỗ thay vì được tính toán. Các bộ chuyển đổi định dạng bổ sung (DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3 và WordML) không được đọc hoặc ghi, và việc thực thi mail merge, LINQ Reporting, so sánh tài liệu, tạo chữ ký số mới, và con trỏ phụ phông chữ nhúng cũng không được bao gồm. Đây là các phân hệ giống như đã bị loại bỏ khỏi mã nguồn thương mại để giữ bản này miễn phí.
Mã nguồn mở & Cấp phép
Aspose.Words FOSS cho .NET được phát hành dưới giấy phép MIT, miễn phí cho cả mục đích thương mại và cá nhân mà không có phí bản quyền hoặc hạn chế phân phối lại. Mã nguồn đầy đủ có sẵn trên GitHub trong Aspose.Words FOSS cho kho lưu trữ .NET.