บทนำ

Aspose.Words FOSS สำหรับ .NET พร้อมให้ใช้งานแล้ว: ไลบรารี .NET ฟรีและเปิด-source สำหรับสร้าง อ่าน และแก้ไขเอกสาร 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 เพียงคำสั่งเดียว (ดู Quick Start ด้านล่าง).

สิ่งที่ทำให้สิ่งนี้แตกต่างจากไลบรารีเอกสารโอเพ่นซอร์สใหม่ทั่วไปคือมันไม่ใช่การเขียนใหม่หรือการห่อหุ้ม. 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() ใช้การป้องกันด้วยรหัสผ่านหรือบังคับให้เป็นแบบอ่านอย่างเดียวโดยใช้ค่าใน enum 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.


เริ่มต้น

แหล่งข้อมูลที่เกี่ยวข้อง