I den här steg-för-steg-guiden kommer vi att se hur man extraherar text från filen DXF i C#. DXF till TXT-konverteringen i C# kan enkelt göras genom att extrahera text från olika typer av enheter. I den här handledningen extraherar vi endast text från CadText-enheten. Processen är dock densamma för andra enheter också.
Steg för att extrahera text från DXF-fil i C#
- Få paketet Aspose.CAD for .NET från NuGet.org
- Inkludera de nödvändiga namnrymden innan du kör koden
- Ställ in Aspose-licens med SetLicense-metoden
- Ladda DXF-fil med klassen Image
- Konvertera objektet till typen CadImage
- Gå igenom alla enheter för att hämta text
- Sök efter entitetstyp CadText och få DefaultValue-egenskapen
- Slutligen, spara den extraherade texten som TXT-fil
I DXF CAD-grafikformat lagras texten endast i entiteterna; till exempel CadText, CadMText, CadInsertObject, CadAttDef eller CadAttrib etc. Så för att extrahera text måste du först hämta varje entitet och sedan hämta text från den. För enkelhetens skull extraherar vi text från CadText-enheten i den här handledningen. Men du kan använda samma tillvägagångssätt och kod för andra typer av enheter, bara casta objektet till en viss enhetstyp.
Kod för att extrahera text från DXF-fil i 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(); | |
} | |
} | |
} |
I ovanstående C#-kodexempel för att extrahera text från DXF-filformat, behåller vi den extraherade texten i en strängvariabel och sparar i slutet all extraherad text i en TXT-fil med filströmmar. I hela denna process för att extrahera text från CAD file formats behöver du inte ha AutoCAD installerat på ditt system och API:et fungerar utan AutoCAD i någon C#-applikation inklusive webb, skrivbord och ASP.NET etc.