V tomto průvodci krok za krokem uvidíme, jak extrahovat text ze souboru DXF v C#. Převod DXF na TXT v C# lze snadno provést extrakcí textu z entit různých typů. V tomto tutoriálu extrahujeme text pouze z entity CadText. Postup je však stejný i pro jiné subjekty.
Kroky k extrahování textu ze souboru DXF v C#
- Získejte balíček Aspose.CAD for .NET z NuGet.org
- Před spuštěním kódu zahrňte požadované jmenné prostory
- Nastavte licenci Aspose pomocí metody SetLicense
- Načtěte soubor DXF pomocí třídy Image
- Převeďte objekt na typ CadImage
- Projděte všechny entity a načtěte text
- Zkontrolujte typ entity CadText a získejte vlastnost DefaultValue
- Nakonec uložte extrahovaný textový výstup jako soubor TXT
V grafickém formátu DXF CAD je text uložen pouze uvnitř entit; například CadText, CadMText, CadInsertObject, CadAttDef nebo CadAttrib atd. Chcete-li extrahovat text, musíte nejprve získat každou entitu a poté z ní načíst text. Pro jednoduchost v tomto tutoriálu extrahujeme text z entity CadText. Ale můžete použít stejný přístup a kód pro jiné typy entit, stačí přetypovat objekt na konkrétní typ entity.
Kód pro extrahování textu ze souboru DXF v 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(); | |
} | |
} | |
} |
Ve výše uvedené ukázce kódu C# pro extrahování textu z formátu souboru DXF uchováváme extrahovaný text v řetězcové proměnné a na konci ukládáme veškerý extrahovaný text do souboru TXT pomocí proudů souborů. V celém tomto procesu extrahování textu z CAD file formats nemusíte mít na svém systému nainstalovaný AutoCAD a API funguje bez AutoCADu v jakékoli C# aplikaci včetně webu, plochy a ASP.NET atd.