1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本

CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本

时间:2023-02-20 00:44:47

相关推荐

CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本

Aspose.CAD 是一个独立的类库,以加强 Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

DWG 图形文件包含二维或三维设计数据。它被设计师、工程师和建筑师广泛使用。在某些情况下,您可能需要在 DWG 文件中查找一些文本。因此,本文讨论如何在 C# 中以编程方式搜索 DWG 文件中的文本。

在 DWG 图形文件中查找文本 – C# API 配置

Aspose.CAD for .NET 支持创建或操作不同的 CAD 绘图,如 DWG、DXF 和其他几种文件格式。可以通过从“下载”部分下载 DLL 文件或运行以下 NuGet 安装命令来轻松设置 API:

PM> 安装包 Aspose.CAD

如何使用 C 搜索 DWG 文件中的文本#

以下步骤演示如何使用 C# 搜索 DWG 文件中的文本:

加载现有 DWG 文件。

通过循环访问 CadText 实体来搜索文本。

在特定布局上搜索文本。

将文件导出为 PDF 格式。

在 C 语言中搜索 DWG 图形文件中的文本#

您需要按照以下步骤使用 C# 搜索 DWG 文件中的文本:

使用 CadImage 类加载现有 DWG 文件。

通过循环访问 CadText 实体来搜索文本。

在特定布局上搜索文本。

将文件导出为 PDF 格式。

下面的代码示例演示如何使用 C# 搜索 DWG 文件中的文本:

// Load an existing DWG file as CadImage.using (CadImage cadImage = (CadImage)Aspose.CAD.Image.Load(sourceFilePath)){// Search for text in the fileforeach (CadBaseEntity entity in cadImage.Entities){// We iterate through CadText entities, but some other entities may contain text also, e.g. CadMText and othersIterateCADNodes(entity);}// Search for text on specific layout get all layout names and link each layout with corresponding block with entitiesCadLayoutDictionary layouts = cadImage.Layouts;string[] layoutNames = new string[layouts.Count];int i = 0;foreach (CadLayout layout in layouts.Values){layoutNames[i++] = layout.LayoutName;System.Console.WriteLine("Layout " + layout.LayoutName + " is found");// Find block, applicable for DWG onlyCadBlockTableObject blockTableObjectReference = null;foreach (CadBlockTableObject tableObject in cadImage.BlocksTables){if (string.Equals(tableObject.HardPointerToLayout, layout.ObjectHandle)){blockTableObjectReference = tableObject;break;}}if (blockTableObjectReference != null){// Collection cadBlockEntity.Entities contains information about all entities on specific layoutCadBlockEntity cadBlockEntity = cadImage.BlockEntities[blockTableObjectReference.BlockName];}}// Export to PDFCadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();rasterizationOptions.PageWidth = 1600;rasterizationOptions.PageHeight = 1600;rasterizationOptions.AutomaticLayoutsScaling = true;// If cadBlockEntity collection for selected layout or entitiesOnLayouts collection by layout's BlockTableRecordHandle (for dxf) is emptyrasterizationOptions.Layouts = new[] { "Layout1" };ImageOptions.PdfOptions pdfOptions = new PdfOptions();pdfOptions.VectorRasterizationOptions = rasterizationOptions;cadImage.Save("SearchText_CAD.pdf", pdfOptions);}public static void SearchTextInDWGAutoCADFile(){// The path to the documents directory.string sourceFilePath = "search.dwg";// Load an existing DWG file as CadImage.CadImage cadImage = (CadImage)Aspose.CAD.Image.Load(sourceFilePath);// Search for text in the entities sectionforeach (var entity in cadImage.Entities){IterateCADNodes(entity);}// Search for text in the block sectionforeach (CadBlockEntity blockEntity in cadImage.BlockEntities.Values){foreach (var entity in blockEntity.Entities){IterateCADNodes(entity);}}}private static void IterateCADNodes(CadBaseEntity obj){switch (obj.TypeName){case CadEntityTypeName.TEXT:CadText childObjectText = (CadText)obj;Console.WriteLine(childObjectText.DefaultValue);break;case CadEntityTypeName.MTEXT:CadMText childObjectMText = (CadMText)obj;Console.WriteLine(childObjectMText.Text);break;case CadEntityTypeName.INSERT:CadInsertObject childInsertObject = (CadInsertObject)obj;foreach (var tempobj in childInsertObject.ChildObjects){IterateCADNodes(tempobj);}break;case CadEntityTypeName.ATTDEF:CadAttDef attDef = (CadAttDef)obj;Console.WriteLine(attDef.DefaultString);break;case CadEntityTypeName.ATTRIB:CadAttrib attAttrib = (CadAttrib)obj;Console.WriteLine(attAttrib.DefaultText);break;}}

以上便是如何使用在 C#中以编程方式搜索 DWG 图形文件中的文本的详细步骤,希望能帮到您,若有其他问题欢迎关注我们。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。