Я пишу конвертер из XML & MathML в документ MS Word.
Я использую MFC и Word, автоматизацию, так что нет никаких проблем в написании текста, как это:Преобразование MathML в MathType в 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!"));
Теперь проблема заключается в преобразовании уравнений MathML в внедренные объекты MathType. Один из возможных способов, который я нашел, - написать уравнения в TeX, а затем программно вызвать макрос MTCommand_TeXToggle (найденный в MathType 6.5 library for Word), который заменяет TeX объектами OLE MathType. Но потом мне нужно каким-то образом преобразовать MathML в TeX, что не так просто.
Я знаю, что объект MathType OLE должен принимать сырые данные MathML, но когда я пытаюсь создать и OLE доступа к объектам программно:
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();
я в конечном итоге без разумной интерфейса кормить его с MathML данные. Итак, вопрос: 1) Есть ли способ получить контроль над объектом OLE и отправить ему некоторые данные MathML? Или 2) Есть ли способ получить макрос MS Word VB, который преобразует выделение из MathML в OLE-объект MathType?
Спасибо заранее, Ник основательный
Не могли бы вы отправить полные макросы 'vba'. Я новичок в VBA, и мне бы хотелось преобразовать формат MATML2MathType' OLE. – Balaji