วิธีการแตกข้อความจากไฟล์ DXF ใน C#

ในคำแนะนำทีละขั้นตอนนี้ เราจะดูวิธีแยกข้อความจากไฟล์ DXF ใน C# การแปลง DXF เป็น TXT ใน C# สามารถทำได้ง่ายๆ โดยแยกข้อความจากเอนทิตีประเภทต่างๆ ในบทช่วยสอนนี้ เรากำลังแยกข้อความจากเอนทิตี CadText เท่านั้น อย่างไรก็ตาม กระบวนการนี้เหมือนกันสำหรับหน่วยงานอื่นๆ เช่นกัน

ขั้นตอนในการแตกข้อความจากไฟล์ DXF ใน C#

  1. รับแพ็คเกจ Aspose.CAD for .NET จาก NuGet.org
  2. รวมเนมสเปซที่จำเป็นก่อนที่จะรันโค้ด
  3. ตั้งค่าใบอนุญาต Aspose โดยใช้วิธี SetLicense
  4. โหลดไฟล์ DXF โดยใช้คลาส Image
  5. แปลงวัตถุเป็นประเภท CadImage
  6. วนซ้ำเอนทิตีทั้งหมดเพื่อดึงข้อความ
  7. ตรวจสอบประเภทเอนทิตี CadText และรับคุณสมบัติ DefaultValue
  8. สุดท้าย บันทึกเอาต์พุตข้อความที่แยกออกมาเป็นไฟล์ 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 เป็นต้น

 ไทย