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

这篇具有很好参考价值的文章主要介绍了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 文件中的文本:

  1. 加载现有 DWG 文件。

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

  3. 在特定布局上搜索文本。

  4. 将文件导出为 PDF 格式。

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

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

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

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

  3. 在特定布局上搜索文本。

  4. 将文件导出为 PDF 格式。

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

// Load an existing DWG file as CadImage.
using (CadImage cadImage = (CadImage)Aspose.CAD.Image.Load(sourceFilePath))
{
// Search for text in the file
foreach (CadBaseEntity entity in cadImage.Entities)
{
// We iterate through CadText entities, but some other entities may contain text also, e.g. CadMText and others
IterateCADNodes(entity);
}

// Search for text on specific layout get all layout names and link each layout with corresponding block with entities
CadLayoutDictionary 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 only
CadBlockTableObject 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 layout
CadBlockEntity cadBlockEntity = cadImage.BlockEntities[blockTableObjectReference.BlockName];
}
}

// Export to PDF
CadRasterizationOptions 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 empty
rasterizationOptions.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 section
foreach (var entity in cadImage.Entities)
{
IterateCADNodes(entity);
}

// Search for text in the block section
foreach (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 图形文件中的文本的详细步骤,希望能帮到您,若有其他问题欢迎关注我们。文章来源地址https://www.toymoban.com/news/detail-442146.html

到了这里,关于CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 条码控件Aspose.BarCode入门教程(8):C#从图像中读取条形码

    Aspose.BarCode for .NET 是一个功能强大的API,可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能,以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API支持流行文件格式处理,并允许将各类文档导出或

    2023年04月25日
    浏览(37)
  • 邮件处理控件 Aspose.Email For Java 授权须知

    Aspose.Email 是用于轻松的开发 email 功能的应用程序的一组控件,基于  ASP.NET 的Web应用、Web服务和Windows 应用。支持 Outlook PST, EML, MSG, and MHT 格式. 允许开发者直接与 SMTP, POP, FTP, 和 MS Exchange 服务器进行工作。支持邮件合并、行事历、定制邮件标题和内容、嵌入文

    2024年02月16日
    浏览(34)
  • Excel处理控件Aspose.Cells教程:Java 在 Excel 中插入和删除行和列

    Aspose.Cells 是Excel电子表格编程API,可加快电子表格的管理和处理任务,支持构建能够生成,修改,转换,呈现和打印电子表格的跨平台应用程序。同时不依赖于Microsoft Excel或任何Microsoft Office Interop组件, Aspose API 支持旗下产品覆盖文档、图表、PDF、条码、OCR、CAD、HTML、电子

    2024年02月01日
    浏览(30)
  • AI教我学编程之C#变量及实例演示

    在AI教我学编程之AI自刀 这篇文章中,我们知道了变量的基础类型,那么变量在C#中有什么作用呢?我们一起来看看吧! 重点先知 变量 变量类型 实例演示 变量声明 实例演示 提出疑问 初始化变量 自动初始化 多变量声明 实例演示 使用变量的值 实例演示 静态类型和dynamic 关

    2024年01月21日
    浏览(33)
  • C#控件编程之显示信息控件(Label、LinkLabel)

    摘要:Windows窗体设计程序提供众多控件,其中,工具箱窗口的公共控件栏里包含较为常见的控件。根据功能分类,其中用于显示信息的控件包括标签(Label)和超链接标签(LinkLabel)。Label用于显示不可编辑的信息,LinkLabel除显示不可编辑信息外,还提供执行文件、网址和电

    2024年02月13日
    浏览(32)
  • C#控件编程详解之文本框(TextBox)

    摘要:以自身开发经验,从属性与事件详解文本框(TextBox)的用法。 编程语言:C# 编程环境:Visual Studio 2019 目录 TextBox控件属性  布局 设计 外观 行为  TextBox控件事件  小结  每篇寄语         TextBox提供文字输入和显示功能,应用广泛,随处可见,作为一个Winform开发者,

    2024年02月16日
    浏览(31)
  • C# wpf 实现任意控件(包括窗口)更多调整大小功能

    第一节 Grid内控件拖动调整大小 第二节 Canvas内控件拖动调整大小 第三节 窗口拖动调整大小 第四节 附加属性实现拖动调整大小 第五章 拓展更多调整大小功能(本章) 上一章我们已经实现了任意控件统一的拖动调整功能,能够方便的给任意控件设置拖动调整大小。开发过程

    2024年01月18日
    浏览(31)
  • excel功能区(ribbonx)编程笔记--2 button控件与checkbox控件

    我们上一章简单先了解了ribbonx的基本内容,以及使用举例实现自己修改ribbox的内容,本章紧接上一章,先讲解一下ribbonx的button控件。 在功能区的按钮中,可以使用内置图像或提供自已的图像,可以指定大按钮或者更小的形式,添加少量的代码甚至可以同时提供标签。此外,

    2024年02月11日
    浏览(29)
  • Winform中实现窗体控件适配(自适应窗体)布局_通过C#代码方式

    即:未启用控件缩放效果代码时,控件内容都是固定在窗体界面的指定位置,不会跟随窗体的拉伸,放大而进行适配,如下图所示: 即:启用控件缩放效果代码时,控件内容会跟随窗体的拉伸,放大而进行适配,如下图所示: 实现思路是: ①在窗体初始化时先获取窗体的宽

    2023年04月17日
    浏览(32)
  • 解决app中以webview的方式嵌入h5网页,h5网页加载不出来

    问题描述 :我的h5网页在web端和手机浏览器都能正常渲染展示,但是嵌入到客户的webview中,渲染加载不出来,仔细检查代码之后并没有任何代码错误和后台报错。抓耳挠腮查找两天之后发现, 原因为整个h5网页的最外层高度设置成了100vh 解决方法 : 页面高度设置为:height:

    2024年02月22日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包