У цьому покроковому посібнику ми побачимо, як витягти текст із файлу DXF у C#. Перетворення DXF у TXT у C# можна легко здійснити шляхом вилучення тексту з сутностей різних типів. У цьому посібнику ми витягуємо текст лише з сутності CadText. Однак процес такий самий і для інших організацій.
Кроки для вилучення тексту з файлу DXF у C#
- Отримайте пакет Aspose.CAD for .NET із NuGet.org
- Включіть необхідні простори імен перед виконанням коду
- Встановіть ліцензію Aspose за допомогою методу SetLicense
- Завантажте файл DXF за допомогою класу Image
- Перетворіть об’єкт на тип CadImage
- Перегляньте всі сутності, щоб отримати текст
- Перевірте тип сутності CadText і отримайте властивість DefaultValue
- Нарешті, збережіть витягнутий вихідний текст як файл TXT
У графічному форматі DXF CAD текст зберігається лише всередині сутностей; наприклад CadText, CadMText, CadInsertObject, CadAttDef або CadAttrib тощо. Отже, щоб витягти текст, вам потрібно спочатку отримати кожну сутність, а потім отримати з неї текст. Заради простоти ми витягуємо текст із сутності CadText у цьому посібнику. Але ви можете використовувати той самий підхід і код для інших типів сутностей, просто приведіть об’єкт до певного типу сутності.
Код для вилучення тексту з файлу DXF на 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(); | |
} | |
} | |
} |
У наведеному вище прикладі коду C# для вилучення тексту з формату файлу DXF ми зберігаємо витягнутий текст у рядковій змінній і наприкінці зберігаємо витягнутий текст у файлі TXT за допомогою потоків файлів. У всьому цьому процесі отримання тексту з CAD file formats вам не потрібно встановлювати AutoCAD у вашій системі, а API працює без AutoCAD у будь-якій програмі C#, включаючи веб, робочий стіл, ASP.NET тощо.