Ich schreibe einen Konverter von XML & MathML zu MS Word Dokument.
Ich bin mit MFC und Word-Automatisierung, so dass es kein Problem schriftlich Text wie folgt aus:Konvertieren von MathML zu MathType in MS Word
_Application app;
COleVariant vtOpt(DISP_E_PARAMNOTFOUND, VT_ERROR),
vtTrue((short)TRUE),
vtFalse((short)FALSE);
app.CreateDispatch("Word.Application",NULL);
Documents docs = app.GetDocuments();
_Document doc = docs.Add (vtOpt, vtOpt, vtOpt, vtOpt);
Range range = doc.Range (vtOpt, vtOpt);
range.InsertAfter (_T("Hello Word!"));
Das Problem ist jetzt MathML-Gleichungen in eingebettete MathType Objekte umzuwandeln. Eine der Möglichkeiten, die ich gefunden habe, besteht darin, Gleichungen in TeX zu schreiben und dann programmgesteuert das Makro MTCommand_TeXToggle (gefunden in MathType 6.5 für Word) aufzurufen, das TeX durch MathType OLE-Objekte ersetzt. Aber dann muss ich MathML irgendwie in TeX umwandeln, was nicht so einfach ist.
Ich weiß, dass MathType OLE-Objekt Roh MathML Daten akzeptieren soll, aber wenn ich versuche, Objekt zu erstellen und den Zugriff OLE programmatisch:
InlineShapes shapes = doc.GetInlineShapes();
InlineShape control = shapes.AddOLEObject (COleVariant("Equation.DSMT4"), vtOpt, vtFalse, vtFalse, vtOpt, vtOpt, vtOpt, vtOpt);
OLEFormat fm = control.GetOLEFormat();
COleDispatchDriver drv = fm.GetObject();
ich ohne vernünftige Schnittstelle am Ende mit dem einzuspeisen MathML-Daten. So ist die Frage: 1) Gibt es eine Möglichkeit, die Kontrolle über das OLE-Objekt zu bekommen und es einige MathML-Daten zu senden? Oder 2) Gibt es eine Möglichkeit, ein MS Word VB-Makro zu erhalten, das die Auswahl von MathML in MathType OLE-Objekt konvertiert?
Vielen Dank im Voraus, Nick Stanch
Könnten Sie bitte komplette 'vba' Makros posten? Ich bin neu in VBA und ich möchte 'MathML2MathType' OLE Format konvertieren. – Balaji