翻譯|使用教程|編輯:顏馨|2023-05-09 10:32:41.623|閱讀 185 次
概述:本文介紹了如何使用 Java 以編程方式在 DWG 文件中搜索文本字符串。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
Aspose.CAD 是一個(gè)獨(dú)立的類(lèi)庫(kù),以加強(qiáng) Java應(yīng)用程序處理和渲染CAD圖紙,而不需要AutoCAD或任何其他渲染工作流程。該CAD類(lèi)庫(kù)允許將DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和圖層高質(zhì)量地轉(zhuǎn)換為PDF和光柵圖像格式。
Aspose API支持流行文件格式處理,并允許將各類(lèi)文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。
DWG 圖形文件包含二維或三維設(shè)計(jì)數(shù)據(jù)。它被設(shè)計(jì)師、工程師和建筑師廣泛使用。在某些情況下,您可能需要在 DWG 文件中查找一些文本。因此,本文討論如何在 C# 中以編程方式搜索 DWG 文件中的文本。
Aspose.CAD for .NET 支持創(chuàng)建或操作不同的 CAD 繪圖,如 DWG、DXF 和其他幾種文件格式。可以通過(guò)從“下載”部分下載 DLL 文件或運(yùn)行以下 NuGet 安裝命令來(lái)輕松設(shè)置 API:
PM> 安裝包 Aspose.CAD
以下步驟演示如何使用 C# 搜索 DWG 文件中的文本:
您需要按照以下步驟使用 C# 搜索 DWG 文件中的文本:
下面的代碼示例演示如何使用 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 圖形文件中的文本的詳細(xì)步驟,希望能幫到您,若有其他問(wèn)題歡迎加入我們的技術(shù)交流群,或關(guān)注我們。
歡迎下載|體驗(yàn)更多Aspose產(chǎn)品
獲取更多信息請(qǐng)咨詢(xún)或 加入Aspose技術(shù)交流群(761297826)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn