FW: bafna_p - r31515 - abiword/branches/gsoc2012math/src/wp/impexp/xp

From: Martin Edmund Sevior <martines_at_unimelb.edu.au>
Date: Mon Jul 16 2012 - 23:08:18 CEST

Congratulations! This is a major new feature for abiword that I will find *extremely* useful. Thank you :-) Cheers Martin ________________________________________ From: owner-abisource-cvs-commit@abisource.com [owner-abisource-cvs-commit@abisource.com] on behalf of cvs@abisource.com [cvs@abisource.com] Sent: Tuesday, July 17, 2012 2:43 AM To: abisource-cvs-commit@abisource.com Subject: bafna_p - r31515 - abiword/branches/gsoc2012math/src/wp/impexp/xp Author: bafna_p Date: 2012-07-16 18:43:45 +0200 (Mon, 16 Jul 2012) New Revision: 31515 Modified: abiword/branches/gsoc2012math/src/wp/impexp/xp/ie_math_convert.cpp abiword/branches/gsoc2012math/src/wp/impexp/xp/ie_math_convert.h Log: Adding the OMML to MathML converter and minor changes to ie_math_convert Modified: abiword/branches/gsoc2012math/src/wp/impexp/xp/ie_math_convert.cpp =================================================================== --- abiword/branches/gsoc2012math/src/wp/impexp/xp/ie_math_convert.cpp 2012-07-16 16:39:46 UTC (rev 31514) +++ abiword/branches/gsoc2012math/src/wp/impexp/xp/ie_math_convert.cpp 2012-07-16 16:43:45 UTC (rev 31515) @@ -1,4 +1,22 @@ -// part of the code here taken from ie_exp_LaTeX.cpp in the latex plugin +/* AbiWord + * Copyright (C) 2008 Xun Sun (xun.sun.cn@gmail.com) + * Copyright (C) 2012 Prashant Bafna (appu.bafna@gmail.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ #include "ie_math_convert.h" #include "ut_debugmsg.h" @@ -101,3 +119,67 @@ } } + +// Function to convert OMML (from docx) to MathML + +static xsltStylesheet * cur2 = NULL; + +bool convertOMMLtoMathML(const std::string & pOMML, std::string & pMathML) +{ + xmlDocPtr doc,res; + xmlChar * qMathML = NULL; + int len; + + if(pOMML.empty()) + { + return false; + } + + if(!cur2) + { + std::string path(XAP_App::getApp()->getAbiSuiteLibDir()); + path+= "/omml_xslt/omml2mml.xsl"; + + // TO DO : add the post build event to the msvc project to copy the omml_xslt folder from openxml plugin to debug/release, after the gsoc2012math branch is merged with trunk + + //path = "../../plugins/openxml/common/omml_xslt/omml2mml.xsl"; + + cur2 = xsltParseStylesheetFile((const xmlChar *)(path.c_str())); + if(!cur2) + { + UT_DEBUGMSG(("convertOMMLtoMathML : Parsing stylesheet failed\n")); + return false; + } + + } + + doc = xmlParseDoc((xmlChar*)(pOMML.c_str())); + if(!doc) + { + xxx_UT_DEBUGMSG(("convertOMMLtoMathML : Parsing OMML document failed\n")); + return false; + } + + res = xsltApplyStylesheet(cur2, doc, NULL); + if(!res) + { + xxx_UT_DEBUGMSG(("convertOMMLtoMathML: Applying stylesheet failed\n")); + xmlFreeDoc(doc); + return false; + } + + if(xsltSaveResultToString(&qMathML, &len, res, cur2) != 0) + { + xmlFreeDoc(res); + xmlFreeDoc(doc); + return false; + } + + pMathML.assign((const char*)qMathML, len); + + g_free(qMathML); + xmlFreeDoc(res); + xmlFreeDoc(doc); + return true; + +} Modified: abiword/branches/gsoc2012math/src/wp/impexp/xp/ie_math_convert.h =================================================================== --- abiword/branches/gsoc2012math/src/wp/impexp/xp/ie_math_convert.h 2012-07-16 16:39:46 UTC (rev 31514) +++ abiword/branches/gsoc2012math/src/wp/impexp/xp/ie_math_convert.h 2012-07-16 16:43:45 UTC (rev 31515) @@ -1,3 +1,22 @@ +/* AbiWord + * Copyright (C) 2012 Prashant Bafna (appu.bafna@gmail.com) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + */ + #ifndef IE_MATH_CONVERT_H #define IE_MATH_CONVERT_H #endif @@ -12,3 +31,5 @@ ABI_EXPORT bool convertMathMLtoLaTeX(const UT_UTF8String & sMathML, UT_UTF8String & sLaTeX); ABI_EXPORT bool convertLaTeXtoEqn(const UT_UTF8String & sLaTeX,UT_UTF8String & eqnLaTeX); + +ABI_EXPORT bool convertOMMLtoMathML(const std::string & pOMML, std::string & pMathML); ----------------------------------------------- To unsubscribe from this list, send a message to abisource-cvs-commit-request@abisource.com with the word unsubscribe in the message body.
Received on Mon Jul 16 23:08:35 2012

This archive was generated by hypermail 2.1.8 : Mon Jul 16 2012 - 23:08:35 CEST