使用 OLE 工具从 Python (Linux) 中的 VSD (Windows Visio Binary) 文件读取数据非常不清楚,是否有其他方法提取数据?

Reading data from a VSD (Windows Visio Binary) File in Python (Linux) with OLE Tools is very unclear, is there any other way to extract the data?

我正在尝试读取 Visio 二进制 .VSD 文件的内容,其中包含我制作的图表中的信息。

我尝试过使用 OLE 工具和 OLEFile,但无法正确读取内容。我可以使用 OLETools 查看文件。当我转储内容并使用 'xxd' 命令(在终端中)查看它时,我无法清楚地看到我保存在文件中的文本。文件中有很多额外的 \x00、\xff 等和其他字符,删除后会使情况变得更糟。我对 .doc 文件做了完全相同的操作,我已经能够打开并清楚地阅读内容。

如果我做错了,有人能指出正确的方向吗?或者更确切地说,可以指出其他工作正常的工具的方向吗?

你真是挑中了强敌:)

与其他办公应用程序不同,Visio .vsd 二进制文件格式并不完全是 Microsoft 的 "compound document",它基本上只是一个包装器。该格式由 Visio Corp 于 199x 年创建,而 AFAIK 从未真正公开记录过。

我真的建议您尽可能不要使用二进制 .VSD。最新的 Visio 支持标准的 openxml 格式 (.vsdx),基本上就是一堆压缩 xml 文件。

AFAIK 唯一已知的理解二进制 .vsd 的第三方库是 aspose 图,但它不是免费的。

感谢大家的帮助。

我找到了一种从文件中提取纯文本并将其转换为 XHTML 并对其进行解析的方法。主要问题是现在我丢失了原始文档可能具有的任何结构。

工具是libvisio-tools https://launchpad.net/ubuntu/trusty/+package/libvisio-tools

正在安装以下程序 vsd2xml、vsd2raw、vsd2text 可以从终端运行转换文件