ในคำแนะนำทีละขั้นตอนนี้ เราจะดูวิธีแยกข้อความจากไฟล์ DXF ใน C# การแปลง DXF เป็น TXT ใน C# สามารถทำได้ง่ายๆ โดยแยกข้อความจากเอนทิตีประเภทต่างๆ ในบทช่วยสอนนี้ เรากำลังแยกข้อความจากเอนทิตี CadText เท่านั้น อย่างไรก็ตาม กระบวนการนี้เหมือนกันสำหรับหน่วยงานอื่นๆ เช่นกัน
ขั้นตอนในการแตกข้อความจากไฟล์ DXF ใน C#
- รับแพ็คเกจ Aspose.CAD for .NET จาก NuGet.org
- รวมเนมสเปซที่จำเป็นก่อนที่จะรันโค้ด
- ตั้งค่าใบอนุญาต Aspose โดยใช้วิธี SetLicense
- โหลดไฟล์ DXF โดยใช้คลาส Image
- แปลงวัตถุเป็นประเภท CadImage
- วนซ้ำเอนทิตีทั้งหมดเพื่อดึงข้อความ
- ตรวจสอบประเภทเอนทิตี CadText และรับคุณสมบัติ DefaultValue
- สุดท้าย บันทึกเอาต์พุตข้อความที่แยกออกมาเป็นไฟล์ TXT
ในรูปแบบกราฟิก DXF CAD ข้อความจะถูกเก็บไว้ภายในเอนทิตีเท่านั้น ตัวอย่างเช่น CadText, CadMText, CadInsertObject, CadAttDef หรือ CadAttrib เป็นต้น ดังนั้นในการแยกข้อความ คุณต้องได้รับเอนทิตีแต่ละรายการก่อน แล้วจึงดึงข้อความจากเอนทิตี เพื่อความง่าย เราจะแยกข้อความจากเอนทิตี CadText ในบทช่วยสอนนี้ แต่คุณสามารถใช้แนวทางและโค้ดเดียวกันสำหรับเอนทิตีประเภทอื่นๆ ได้ เพียงแค่ส่งออบเจกต์ไปยังประเภทเอนทิตีเฉพาะ
รหัสเพื่อแยกข้อความจากไฟล์ DXF ใน C
using System; | |
using System.IO; | |
//Add reference to Aspose.CAD for .NET API | |
//Use following namespaces to extract text from DXF file | |
using Aspose.CAD; | |
using Aspose.CAD.FileFormats.Cad; | |
using Aspose.CAD.FileFormats.Cad.CadObjects; | |
using Aspose.CAD.FileFormats.Cad.CadConsts; | |
namespace ExtractTextFromDXFFile | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
//Set Aspose license before extracting text from DXF file format | |
//using Aspose.CAD for .NET | |
Aspose.CAD.License AsposeCADLicense = new Aspose.CAD.License(); | |
AsposeCADLicense.SetLicense(@"c:\asposelicense\license.lic"); | |
CadImage DXFCADImagFile = (CadImage) Image.Load("InputDXFCADImagingFile.dxf"); | |
//string to store extracted text from the DXF file | |
string TextExtractedFromDXFFile = ""; | |
// Search for text in the entities section | |
foreach (CadBaseEntity CadEntity in DXFCADImagFile.Entities) | |
{ | |
if (CadEntity.TypeName == CadEntityTypeName.TEXT) | |
{ | |
CadText CadTextObject = (CadText)CadEntity; | |
TextExtractedFromDXFFile += CadTextObject.DefaultValue; | |
} | |
} | |
//Save the text extracted from DXF file using File Stream | |
FileStream FStream = new FileStream("ExtractTextFromDXFFormat.txt", FileMode.Create); | |
StreamWriter SWriter = new StreamWriter(FStream); | |
//Write extracted text to the file | |
SWriter.WriteLine(TextExtractedFromDXFFile); | |
SWriter.Flush(); | |
//Close file objects | |
SWriter.Close(); | |
FStream.Close(); | |
} | |
} | |
} |
ในตัวอย่างโค้ด C# ด้านบนเพื่อแยกข้อความจากรูปแบบไฟล์ DXF เราเก็บข้อความที่แยกออกมาในตัวแปรสตริง และในตอนท้ายให้บันทึกข้อความที่แยกแล้วทั้งหมดในไฟล์ TXT โดยใช้สตรีมไฟล์ ในกระบวนการดึงข้อความจาก CAD file formats ทั้งหมดนี้ คุณไม่จำเป็นต้องติดตั้ง AutoCAD ในระบบของคุณ และ API จะทำงานได้โดยไม่ต้องใช้ AutoCAD ในแอปพลิเคชัน C# ใดๆ รวมถึงเว็บ เดสก์ท็อป และ ASP.NET เป็นต้น