3

我想解析 AutoCAD 的 MText 实体并提取原始文本。我看到文本格式的模式。如果这已经解决了,那么我就不需要重新发明轮子了。我在网上搜索过,但没有找到足够的信息。

我正在搜索有关此主题的任何链接或参考资料。

编辑:

为了进一步说明,我们正在使用 ODA(Open Design Aliance)库来访问 DWG 文件。我不熟悉这个库。另一位开发人员正在使用该库并从包括 MText 实体在内的文件中提取信息。然后,我得到一个包含 MText 文本的文件,这就是我正在查看的内容。我正在查看 MText 格式的文本,我可以访问并在 C# 中使用它。

问题:

  1. 我问其他开发人员,ODA 库是否提供了一种提取未格式化原始文本的方法。他的回答是它可以,但是它也会导致实体被写回 DWG 文件。我对原始文本感兴趣,但不会影响原始 DWG 文件。ODA 是否提供了一种在不更改文件的情况下提取原始文本的方法?
  2. 我对任何有关 MText 格式规则的文档都感兴趣,因此如果有必要,我可以考虑自己编写一个解析器。
  3. 有什么可以将 MText 转换为 RTF 的吗?我意识到 RTF 不会完全满足所有格式规则,但这可以提供一种在 WinForms 应用程序中显示格式化文本的令人满意的方法。给定 RTF,我还可以获得原始文本。
4

4 回答 4

3

这个论坛线程包括一个 VB 程序,用于从 MText 中去除控制字符。该代码指示了应该如何去除每个控制字符,因此在 C# 中编写类似的内容应该很简单。

此外,格式代码的文档可在AutoCAD 文档中找到。

于 2010-07-06T16:47:33.737 回答
2

如果您使用 C# 和 .NET 接口,则 MText 对象的 Text 属性提供原始文本:

MText mt;
...
string rawText = mt.Text;

如果您也想要格式化,则解决方案会有所不同。

于 2010-07-01T18:04:45.577 回答
1

如果要解析没有 AutoCAD 的 AutoCAD 文件,则需要指定要解析的文件类型。但是,这个问题基本上是以下问题的一个子集:

对于 DWG,基本选项是Open Design AllianceAutoCAD RealDWG

如果这没有帮助,请提供有关您正在尝试做什么的更多详细信息。

于 2010-07-01T22:51:03.200 回答
1

如果您使用的是 C#,请尝试使用 netDXF 库。

我认为伪代码应该是这样的:

DxfDocument dxf = new DxfDocument();
dxf = DxfDocument.Load(openFileDialog1.FileName);//load your file
//This extracts the raw text of your first text obj
dxf.MTexts[0].PlainText;
于 2016-04-15T02:32:39.450 回答