U ovom vodiču korak po korak, vidjet ćemo kako izdvojiti tekst iz DXF datoteke u C#. Pretvorba DXF u TXT u jeziku C# može se jednostavno izvršiti izdvajanjem teksta iz entiteta različitih vrsta. U ovom vodiču izvlačimo tekst samo iz entiteta CadText. Međutim, postupak je isti i za druge subjekte.
Koraci za izdvajanje teksta iz DXF datoteke u C#
- Nabavite Aspose.CAD for .NET paket s NuGet.org
- Uključite potrebne prostore imena prije pokretanja koda
- Postavite Aspose licencu koristeći SetLicense metodu
- Učitaj DXF datoteku pomoću klase Image
- Pretvori objekt u tip CadImage
- Prođite kroz sve entitete da dohvatite tekst
- Provjerite tip entiteta CadText i dobijte svojstvo DefaultValue
- Na kraju, spremite izdvojeni tekst kao TXT datoteku
U DXF CAD grafičkom formatu, tekst se pohranjuje samo unutar entiteta; na primjer CadText, CadMText, CadInsertObject, CadAttDef ili CadAttrib itd. Dakle, da biste izdvojili tekst, morate prvo dobiti svaki entitet, a zatim dohvatiti tekst iz njega. Radi jednostavnosti, u ovom vodiču izvlačimo tekst iz CadText entiteta. Ali možete koristiti isti pristup i kod za druge vrste entiteta, samo pretvorite objekt u određeni tip entiteta.
Kod za izdvajanje teksta iz DXF datoteke u 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(); | |
} | |
} | |
} |
U gornjem primjeru C# koda za ekstrahiranje teksta iz DXF formata datoteke, čuvamo ekstrahirani tekst u varijabli niza i na kraju spremamo sav ekstrahirani tekst u TXT datoteku pomoću tokova datoteka. U cijelom ovom procesu izdvajanja teksta iz CAD file formats, ne morate imati instaliran AutoCAD na svom sustavu, a API radi bez AutoCAD-a u bilo kojoj C# aplikaciji, uključujući Web, Desktop i ASP.NET itd.