В этом пошаговом руководстве мы увидим, как извлечь текст из файла 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 и т. д.