このステップバイステップガイドでは、C#でDXFファイルからテキストを抽出する方法を説明します。 C#でのDXFからTXTへの変換は、さまざまなタイプのエンティティからテキストを抽出することで簡単に実行できます。このチュートリアルでは、CadTextエンティティからのみテキストを抽出しています。ただし、プロセスは他のエンティティでも同じです。
C#でDXFファイルからテキストを抽出する手順
- NuGet.orgからAspose.CAD for .NETパッケージを取得します
- コードを実行する前に、必要な名前空間を含めます
- SetLicenseメソッドを使用してAsposeライセンスを設定します
- Imageクラスを使用してDXFファイルをロードします
- オブジェクトをCadImageタイプに変換します
- すべてのエンティティをループしてテキストをフェッチします
- CadTextエンティティタイプを確認し、DefaultValueプロパティを取得します
- 最後に、抽出したテキスト出力をTXTファイルとして保存します
DXF CADグラフィック形式では、テキストはエンティティ内にのみ保存されます。たとえば、CadText、CadMText、CadInsertObject、CadAttDef、CadAttribなどです。したがって、テキストを抽出するには、最初に各エンティティを取得してから、そこからテキストを取得する必要があります。簡単にするために、このチュートリアルではCadTextエンティティからテキストを抽出しています。ただし、他のタイプのエンティティにも同じアプローチとコードを使用でき、オブジェクトを特定のエンティティタイプにキャストするだけです。
C#でDXFファイルからテキストを抽出するコード
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(); | |
} | |
} | |
} |
DXFファイル形式からテキストを抽出する上記のC#コードサンプルでは、抽出されたテキストを文字列変数に保持し、最後にファイルストリームを使用して抽出されたすべてのテキストをTXTファイルに保存します。 CAD file formatsからテキストを抽出するこのプロセス全体では、システムにAutoCADをインストールする必要はなく、Web、デスクトップ、ASP.NETなどのC#アプリケーションでAutoCADがなくてもAPIが機能します。