2016-08-09 385 views
0

Ich versuche, den Inhalt einer Visio Binary .VSD-Datei zu lesen, die Informationen aus einem Diagramm enthält, das ich erstellt habe.Das Lesen von Daten aus einer VSD-Datei (Windows Visio Binary) in Python (Linux) mit OLE-Tools ist sehr unklar. Gibt es eine andere Möglichkeit, die Daten zu extrahieren?

Ich habe versucht, die OLE-Tools und OLEFile, aber kann nicht richtig den Inhalt lesen. Ich kann die Datei mit den OLETools anzeigen. Wenn ich den Inhalt ablege und ihn mit dem Befehl 'xxd' (im Terminal) ansehe, kann ich den Text, den ich in der Datei gespeichert habe, nicht klar erkennen. Es gibt viele zusätzliche \ x00, \ xff usw. und andere Zeichen innerhalb der Datei, die beim Entfernen schlechter werden. Ich habe das gleiche mit einer .doc-Datei gemacht und ich konnte den Inhalt öffnen und deutlich lesen.

Kann mir bitte jemand in die richtige Richtung zeigen, wenn ich das falsch mache oder eher in Richtung anderer Werkzeuge, die gut funktionieren?

Antwort

0

Sie haben gepflückt wirklich einen starken Feind :)

Im Gegensatz zu anderen Office-Anwendungen Visio ist Binärdateiformat vsd nicht genau Microsofts „Compound-Dokument“, das ist im Grunde nur ein Wrapper. Das Format wurde 199x von Visio Corp erstellt, und AFAIK wurde nie wirklich öffentlich dokumentiert.

Ich würde Ihnen wirklich empfehlen, NICHT mit binären .VSD zu gehen, wenn möglich. Neueste Visio unterstützt das Standard-Openxml-Format (.vsdx), das im Grunde genommen nur aus einer Reihe von gepackten XML-Dateien besteht.

AFAIK die einzige bekannte Drittanbieter-Bibliothek zu verstehen, binäre .vsd ist Aspose-Diagramme, aber es ist nicht frei.

0

Danke für die Hilfe.

Ich habe einen Weg gefunden, um reinen Text aus der Datei zu extrahieren und es in XHTML zu konvertieren und das zu analysieren. Das Hauptproblem ist, dass ich jetzt jede Struktur verliere, die das Originaldokument gehabt haben könnte.

Die Werkzeuge libvisio-Tools gibt https://launchpad.net/ubuntu/trusty/+package/libvisio-tools

Installieren Sie die folgenden Programme vsd2xtml, vsd2raw, vsd2text , die vom Terminal ausgeführt werden kann, um die Dateien zu konvertieren