In questa guida passo passo, vedremo come estrarre il testo dal file DXF in C#. La conversione da DXF a TXT in C# può essere eseguita facilmente estraendo testo da Entità di vario tipo. In questo tutorial, estraiamo il testo solo dall’entità CadText. Tuttavia, il processo è lo stesso anche per altre entità.
Passaggi per estrarre il testo dal file DXF in C#
- Ottieni il pacchetto Aspose.CAD for .NET da NuGet.org
- Includere gli spazi dei nomi richiesti prima di eseguire il codice
- Impostare la licenza Aspose utilizzando il metodo SetLicense
- Carica il file DXF utilizzando la classe Image
- Converti l’oggetto nel tipo CadImage
- Scorri tutte le entità per recuperare il testo
- Verifica il tipo di entità CadText e ottieni la proprietà DefaultValue
- Infine, salva l’output di testo estratto come file TXT
Nel formato grafico CAD DXF, il testo è memorizzato solo all’interno delle entità; ad esempio CadText, CadMText, CadInsertObject, CadAttDef o CadAttrib ecc. Quindi, per estrarre il testo, è necessario prima ottenere ciascuna entità e quindi recuperare il testo da essa. Per semplicità, in questo tutorial stiamo estraendo il testo dall’entità CadText. Ma puoi usare lo stesso approccio e codice per altri tipi di entità, basta eseguire il cast dell’oggetto su un particolare tipo di entità.
Codice per estrarre il testo dal file DXF in 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(); | |
} | |
} | |
} |
Nell’esempio di codice C# sopra per estrarre il testo dal formato di file DXF, manteniamo il testo estratto in una variabile stringa e alla fine salviamo tutto il testo estratto in un file TXT utilizzando flussi di file. In questo intero processo per estrarre il testo da CAD file formats, non è necessario che AutoCAD sia installato sul sistema e l’API funziona senza AutoCAD in qualsiasi applicazione C#, inclusi Web, Desktop e ASP.NET ecc.