Sto tentando di convertire l'equazione di MathType che è archiviata come file binario OLE in MathML utilizzando l'SDK di MathType.Convertire l'equazione MathType incorporata nel file binario OLE in MathML
Il file di input per il mio programma è un DocX che conterrà equazioni di MathType embdedd. Sto cercando una soluzione che sia indipendente dall'uso di MS Word. DocX è un file zip e, una volta estratto, è possibile trovare un file binario per ogni oggetto OLE nella cartella "word/embeddings /". In genere il nome del file sarebbe oleObject1.bin, oleObject2.bin ecc
Quando ho controllato con MathType SDK ha una classe "ConvertEquation", che ha seguente metodo:
virtual public bool Convert(EquationInput ei, EquationOutput eo)
EquationInput è una classe astratta per che sono disponibili i seguenti corsi concreti:
EquationInputFileText
EquationInputFileWMF2
EquationInputFileWMF
EquationInputFileGIF
EquationInputFileEPS
Nelle classi sopra elencate nessuno di essi sembra supportare il binario OLE.
In base al documento SDK di MathType, i dati MTEF vengono salvati come formato di dati nativi dell'oggetto. Ogni volta che un oggetto di equazione deve essere scritto in uno "stream" OLE, viene scritta un'intestazione da 28 byte, seguita dai dati MTEF. Immagino che questo sia esattamente ciò che è presente in questo file binario. Ma proprio non sembra esserci alcun modo in cui questo formato possa essere usato per essere utilizzato da SDK per convertirlo in MathML. qualche idea?
Grazie
Sebbene non sia una risposta completa, è possibile trovare ispirazione nella seguente domanda. Un link per scaricare il codice proposto può essere trovato nell'ultimo commento della risposta. Dipende da Word, ma potrebbe aiutarti a iniziare. http://stackoverflow.com/questions/15320088/parse-mathtype-mtef-data-from-ole-binary-string – DanL
Grazie. L'ho già visto. Con quello come vantaggio, sono arrivato fin qui. Ma non sono in grado di procedere oltre ciò che ho esposto sopra. –
Se riesci a ottenere fisicamente i flussi di byte, proverei a farlo: crea un'applicazione in grado di attivare l'oggetto OLE. Quindi avrai il riferimento all'oggetto interno che potrai quindi passare alla funzione di conversione. La tua app farebbe ciò che Word sta facendo quando attiva l'oggetto. Penserei di farlo in VB6 almeno come test. –