Ebben a lépésről lépésre bemutatjuk, hogyan lehet szöveget kivonni a DXF fájlból C# nyelven. A DXF-ből TXT-be konvertálás C#-ban könnyen elvégezhető a különböző típusú entitások szövegének kinyerésével. Ebben az oktatóanyagban csak a CadText entitásból nyerünk ki szöveget. A folyamat azonban ugyanaz más entitásoknál is.
Lépések a szöveg kibontásához DXF fájlból C#-ban
- Szerezze be a Aspose.CAD for .NET csomagot a NuGet.org webhelyről
- A kód futtatása előtt adja meg a szükséges névtereket
- Állítsa be az Aspose licencet a SetLicense metódussal
- Töltse be a DXF fájlt a Image osztály használatával
- Alakítsa át az objektumot CadImage típusúvá
- Szöveg lekéréséhez görgessen végig az összes entitáson
- Ellenőrizze a CadText entitástípust, és szerezze be a DefaultValue tulajdonságot
- Végül mentse a kicsomagolt szövegkimenetet TXT fájlként
A DXF CAD grafikus formátumban a szöveg csak az entitásokon belül tárolódik; például a CadText, a CadMText, a CadInsertObject, a CadAttDef vagy a CadAttrib stb. A szöveg kinyeréséhez először le kell szereznie az egyes entitásokat, majd ki kell kérnie belőle a szöveget. Az egyszerűség kedvéért ebben az oktatóanyagban szöveget vonunk ki a CadText entitásból. De ugyanezt a megközelítést és kódot használhatja más típusú entitásokhoz is, csak adja át az objektumot egy adott entitástípusra.
Kód a szöveg kinyeréséhez DXF fájlból C#-ban
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(); | |
} | |
} | |
} |
A fenti C# kódmintában a szöveg DXF fájlformátumból történő kivonásához a kivont szöveget egy karakterlánc-változóban tartjuk, és a végén az összes kibontott szöveget egy TXT fájlba mentjük fájlfolyamok segítségével. A CAD file formats szövegek kibontásának teljes folyamata során nem kell az AutoCAD-et telepítenie a rendszerére, és az API AutoCAD nélkül működik minden C#-alkalmazásban, beleértve a webet, az asztali számítógépet és az ASP.NET-et stb.