您的位置:新葡亰496net > 新葡亰496net > 新葡亰496netOffice中数学公式用Java解析,office二〇

新葡亰496netOffice中数学公式用Java解析,office二〇

发布时间:2019-06-21 07:09编辑:新葡亰496net浏览(100)

    问题:office二〇〇九怎么着与数学编辑器结合?

    广泛难点一挥而就方法:

    原标题:MathType怎么装到Word

    供销合作社正在做教育类产品,在遇到数学公式时,我们一般会利用latex表明式来做保留和渲染。
    在里头一个等级次序上,遭逢三个急需是要从office文档(WordExcel)中导入标题内容至数据库,标题内容中就有希望包涵数学公式,而在文书档案中编辑希望接纳office的公式插件来写公式成分。
    实则集团以前的出品早就应用.net落到实处过此作用,可是以往铺面全面转型Java,我们也要切磋出一个适用Java的化解方案。

                        一些科学商讨中平时使用的工具

    回答:

    1、MathType 6.0与office 2005包容难点

    Word作为常用的文字管理软件,也能够供理科工作者接纳,用来编排数学公式,为了方便使用,能够在Word中增多MathType公式编辑器,上边就来学习具体操作方法。

    office文书档案中的公式编辑器

      想必许多人在做科学研商只怕写文书档案的时候平时会遇见一个主题材料就是工具使用的标题,上面列举部分相比较常用的工具:

    数学编辑器,近来以来,公式类的编辑器,相比常用的,是Math Type。

    是因为Office软件安装时默许是不安装公式编辑器的,在装置完MathType 6.0事后,须求将MathType 6.0OfficeSupport目录中的MathType Commands 6 For Word.dot复制到C:Documents andSettings日前用户名Application DataMicrosoftWordSTARTUP目录中,重新打开Office贰零零陆Word过后就可以在的“加载项”选项卡中看到Mathtype的飞速按钮了,此时“插入”菜单中的“公式”符号展现为亮色,表示能够应用。

    上面就以Office 2015为例,

    mathtype插件

    mathtype是叁个第三方的数学公式插件,它能在Office文书档案中启用编辑,并扭转贰个蕴涵公式矢量图的ole新葡亰496netOffice中数学公式用Java解析,office二〇〇九怎么与数学编辑器结合。目的插入到文书档案中。
    原来.net的方案便是行使此种形式,使用mathtype提供的c#库包来解析ole对象,抽取LaTeX表达式。
    但在纯Java情状下就不或然成功了。

    1.文书档案编辑软件

    动用以往,word内编制公式效果如图:

    不过此时也会并发二个难点,在利用Ctrl V粘贴时会提醒出错“Only One MathType command can beexecuted at a time.  Please try againlater.”,而只有在
    Word的“编辑”菜单中选拔“选用性粘贴”才得以将复制的内容粘贴进来。而且插入公式的功效只对word二〇〇六格式的公文(后缀名叫docx)有效,对前边版本的word文件(doc格式)还是无法接纳公式编辑器。建议:不将MathType6.0作为Word 二〇〇七的私下认可加载项,即删除C:Documents and Settings脚下用户名ApplicationDataMicrosoftWordSTARTUP目录中的MathType Commands 6 ForWord.dot文件,而在急需插入公式的运用应用独立的MathType 6.0先后,然后将编辑好的公式粘贴到Word中。 

    先是大家在开头菜单找到mathtype的图纸,然后鼠标右键,然后找到展开文件地方,假若再三再四照旧火速键邮件张开属性,展开文件地方找到实际文件地点。

    office自带公式编辑器

    从2007版开始,Office也自带了叁个公式编辑器。
    在2007版中WordExcel里面不等的是,前者插入的公式对象是Office MathML节点,后者插入的或然ole
    到了二零零六版早先,四个产品的公式编辑器插入的都以Office MathML节点了,可是相互对公式对象中的默许文字编码管理分歧。
    这个不相同点能够阅览固然同样属于Office的成品,他们之间也有多数不合并的地点。

      最普遍的实在Microsoft Office体系了,其次就是进口的WPS。如今Microsoft office最新版本是2013版本的,个人试用了一下,感到无用的功力太多,而且很卡,分界面看起来不是很清爽,不引进试用。未来我们用的最多的相应是二零零七和二零一零多少个版本的,那2个本子不相上下,二零零七版本速度相对于二〇〇八以来要快一些,可是二〇〇九对待二〇〇五以来多了某个实用功能比方在word中一贯存为pdf格式文件,并且2008分界面越来越雅观。WPS个人不推荐,纵然免费,可是你时一时会意识WPS在排版的时候会并发多数不伦不类的格式问题:举个例子在那台计算机调好的格式换成别的一台微型Computer上格式就变了。个人出于习于旧贯的原故相比扶助于二零零六版本的,不问可见,推荐使用2008和二〇〇六多少个本子的。

    新葡亰496net 1

    2、MathType 6.0中MT Extra(TrueType)字体难点

    摩登版MathType 7获取地址:

    公式表明式

      个人推举指数:

    Math Type,前段时间国内正版连串号,个人使用出售价格为498元。

    在开采MathType6.0时,一时会唤起MathType须求设置四个较新本子的MT Extra(TrueType)字体,那是因为你的种类绝非MTExtra(TrueType)字体,或此字体的版本太低,贫乏有个别符号。

    新葡亰496net 2

    LaTeX

    LaTeX是一种基于ΤΕΧ的排版系统,它那么些适用于生成高印刷品质的科技(science and technology)和数学类文书档案。
    举个例子勾股定理用LaTeX表达:

    a^{2} b^{2}=c^{2}
    

    常用的LaTeX渲染组件是MathJax。
    咱们在类型中使用的正是LaTeX,所以此番研商正是何许将Office中的公式对象转变到LaTeX表达式。

      Microsoft office 2013   不推荐

    如需购买盒装软件,则为548元。

    竭泽而渔办法:展开C:WINDOWSFonts,若个中有MTExtra(TrueType)字体或其快速格局,则将其除去,再把MathType安装目录下MathType6.0FontsTrueType目录里面包车型地铁MTEXTRA.TTF字体文件复制粘贴到C:WINDOWSFonts 文件夹中(粘贴时会有安装字体提示),实现字体完装。 

    展开文件地方分界面

    Mathml

    齐全为数学符号语言(Mathematical 马克up Language),是一种基于XML的正规,用来在互联网络挥洒数学符号和公式的置标语言。
    举例说二个表明式:

    <math xmlns="http://www.w3.org/1998/Math/MathML">
        <msup>
            <mi>n</mi>
        <mrow>
          <mi>p</mi>
          <mo>-</mo>
              <mn>1</mn>
        </mrow>
      </msup>
      <mspace width=".2em"/>
      <mo>≡</mo>
      <mspace width=".2em"/>
      <mn>1</mn>
      <mspace width=".2em"/>
      <mo>(</mo>
      <mi>mod</mi>
      <mspace width=".2em"/>
      <mi>p</mi>
      <mo>)</mo>
    </math>
    

      Microsoft office 2010   4星

    Math Type在windows系统中流行版本为Math type 6.9b(可在office 贰零壹伍及以下版本中采取)。

    3.模板文件加载战败

    那时候大家张开word2014展开选项,然后再弹出框接纳加载项,然后如图所示采取word加载项,然后点击转到。

    Office MathML (OMML)

    office2007尔后版本所编纂的公式对象正是OMMLOMMLoffice为了合营Office Open Xml制定的数学符号语言。
    例如:

    <m:oMathPara><!-- mathematical block container used as a paragraph -->
      <m:oMath><!-- mathematical inline formula -->
        <m:f><!-- a fraction -->
          <m:num><m:r><m:t>π</m:t></m:r></m:num><!-- numerator containing a single run of text -->
          <m:den><m:r><m:t>2</m:t></m:r></m:den><!-- denominator containing a single run of text -->
        </m:f>
      </m:oMath>
    </m:oMathPara>
    

      Microsoft office 2007   4.5星

    Mac系统中最新版本为Math type6.7。

    今天装完MathType 6.0c,可是在word里见不到工具栏,咋办? 模板文件加载出了难点,手工业加多,试试看: 【工具】→【模板和加载项】,加多

    新葡亰496net 3

    转移关系

    我们在品种中动用到的三者之间转变关系是:OMML -> MathML -> LaTex
    Office在设置目录中提供了将OMML转为MathMLxsl工具:MML2OMML.XSL
    MathMLLaTex利用网络找到另一个xsl工具mmltex.xsl。

      当然某个场地供给特意用到Latex进行编辑就另当别论了。

    math type分为两种安装类型。

    ①:D:Program FilesMathTypeOffice Support(Mathtype的装置路线) 路线下的2个.dot文件

    点击“加载项”开关分界面

    Office文档Java解析

    2.公式编辑软件

    一为对象型,一为加载&对象型。

    ②:D:Program FilesMathTypeMathPage路径下的 MathPage.wll

    接下来再弹出的选项框内选择选项,在弹出的文件夹内找到刚才mathtype的文件夹,在office support内找到word的支撑,选取二〇一二的就能够了。小编的门径是C:Program Files (x86)MathTypeOffice Support64。

    二零零六与事先的本子

    用过一段Office的同室们都领会,Office文书档案分为wordwordx这两体系型,分别对应着二零零六事先与随后的本子格式。
    二〇〇六事先版本选取的Office文书档案是二进制文件。而后来版本中x代表的含义是xml,申明新版的Office文书档案使用Office Open Xml正式定义文件格式。
    一经我们把wordx文本的扩大名改为zip,就足以健康解压出Word文档包蕴的具有故事情节。

      就算在word中能直接插入和编写制定公式,可是一时假若要编写一些特别复杂的数学公式,word可能就不能够满意供给了。最非凡的公式编辑软件也许非MathType莫属了,基本上进行科学故事集写作编辑公式都以用的这一个软件上面是MathType的运行截图:

    只要需求在word 20第10中学显得math type展现相应标签,则援引安装加载&对象型。

    最后,再重启一下Word。 

    新葡亰496net 4

    POI

    相信用Java做过新闻种类的同室都遇过生成总括Excel文书档案或深入分析Excel导入数据的成效。那时我们最常使用的开拓库就是Apache POI。
    POI支撑二进制与Office Open Xml文书档案,能够满意大家超越八分之四的Office文书档案深入分析需要。

      新葡亰496net 5

    设置到位后如图:

    4.有关MathType6加载的难题
    用Word→【工具】→【模板和加载项】选拔加载 ①MathType Commands 6 For Word.dot ②WordCmds.dot ③MathPage.wll
    多个公文。第①和第③个公文都能够符合规律加载,唯独第②个文件,选用之后重启Word,同样会晤世八个白手对话框,再看加载项,重启前选拔的WordCmds.dot文件自动未有被选中! 另,作者利用的Office二〇〇四规范版!若是用Office二零零一专门的学问版就不会冒出如此的难点!不晓得是或不是和版本有提到!请对office和MahtType熟谙的情侣指导指导!! 只好用Office2001职业版

    点击“office support”界面

    剖判公式实例

    率先要验证我们的作用界定:只针对Office2010及以上的Office Open Xml文档,WordExcel均可。 其中,Excel的公式数学字符须求转为一般字符,不然会冒出Java不能够甄别的字符。
    这里用Excel文书档案为例子来阐明分析进度。

    3.图表制作软件

    新葡亰496net 6

    选定之后然后大家采纳鲜明,然后大家回来word文书档案,就能够见见在word的菜单栏里面有一个MathType,表示安装成功啦。

    功能实现思路

    本条效果的关键点在于怎么着取得Office文书档案中的公式节点(OMML),得到OMML后大家就可以运用上述的多个工具调换为LaTeX

      如若要创设一般的图表excel和visio能够餍足供给,然而一旦为了创建越来越好喝更标准的图和四哥,下边推荐多少个软件:

    而有关如何设置并内置,math type网站有连带详细介绍,在此不作赘述。

    新葡亰496net 7

    获得OMML

    既然如此大家掌握Excel文书档案是二个xml,那只供给运用xml浅析工具读出OMML节点就行了。
    先用POI获得操作的XSSFSheet

    String basePath = "f:\";
    FileInputStream fis = new FileInputStream(basePath   "math.xlsx");
    OPCPackage pack = OPCPackage.open(fis);
    XSSFWorkbook workbook = new XSSFWorkbook(pack);
    XSSFSheet sheet = workbook.getSheetAt(0);
    

    插入在Excel文书档案中的图片、公式及别的因素,它都以存放在二个叫drawing的单独xml文本中,个中的节点记录了成分摆放的职位消息。用POI得到drawing元素:

    XSSFDrawing dr = sheet.getDrawingPatriarch();
    CTDrawing drawing = dr.getCTDrawing();
    CTOneCellAnchor[] oneCells = drawing.getOneCellAnchorArray();   //所有的图片、公式等元素
    

    每个CTOneCellAnchorxml里富含成分的职分消息,蕴含X坐标、Y坐标,所在行、所在列等,更要紧的是图片或公式的叙说节点。OMML节点名叫m:oMathPara,这里大家就选用dom4jxpath来获得OMML

    CTOneCellAnchor c = oneCells[0];
    String xml = c.xmlText();   //得到xml串
    
    //dom4j解析器的初始化
    SAXReader reader = reader = new SAXReader(new DocumentFactory());
    Map<String, String> map=new HashMap<String, String>();
    map.put("xdr","http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing");
    map.put("m","http://schemas.openxmlformats.org/officeDocument/2006/math");
    reader.getDocumentFactory().setXPathNamespaceURIs(map); //xml文档的namespace设置
    
    InputSource source = new InputSource(new StringReader(xml));
    source.setEncoding("utf-8");
    Document doc = reader.read(source);
    Element root = doc.getRootElement();
    Element e = (Element)root.selectSingleNode("//m:oMathPara");    //用xpath得到OMML节点
    String omml = e.asXML();    //转为xml
    

      1)几何画板

    math type官方网址关于增添嵌入开关的技术小说:

    MathType安装好的分界面

    转换OMML为Mathml及LaTeX

    得手得到OMML后,就足以接纳xsl更改工具获得MathmlLaTeX了。
    此间先写一下xsl改变工具方法,使用javax.xml.transform工具包达成:

    /**    
     * <p>Description: xsl转换器</p>
     */
    public static String xslConvert(String s, String xslpath, URIResolver uriResolver){
        TransformerFactory tFac = TransformerFactory.newInstance();
        if(uriResolver != null)  tFac.setURIResolver(uriResolver);
        StreamSource xslSource = new StreamSource(MathmlUtils.class.getResourceAsStream(xslpath));
        StringWriter writer = new StringWriter();   
        try {
            Transformer t = tFac.newTransformer(xslSource);
            Source source = new StreamSource(new StringReader(s));
            Result result = new StreamResult(writer);   
            t.transform(source, result);
        } catch (TransformerException e) {
            logger.error(e.getMessage(), e);
        }
        return writer.getBuffer().toString();
    }
    
    /**
     * <p>Description: 将mathml转为latx </p>
     * @param mml
     * @return
     */
    public static String convertMML2Latex(String mml){
        mml = mml.substring(mml.indexOf("?>") 2, mml.length()); //去掉xml的头节点
        URIResolver r = new URIResolver(){  //设置xls依赖文件的路径
            @Override
            public Source resolve(String href, String base) throws TransformerException {
                InputStream inputStream = MathmlUtils.class.getResourceAsStream("/conventer/mml2tex/"   href);
                return new StreamSource(inputStream);
            }
        };
        String latex = xslConvert(mml, "/conventer/mml2tex/mmltex.xsl", r);
        if(latex != null && latex.length() > 1){
            latex = latex.substring(1, latex.length() - 1);
        }
        return latex;
    }
    
    /**
     * <p>Description: office mathml转为mml </p>
     * @param xml
     * @return
     */
    public static String convertOMML2MML(String xml){
        String result = xslConvert(xml, "/conventer/OMML2MML.XSL", null);
        return result;
    }
    

    至此大家就能够将OMML转成MathmlLaTeX表明式了:

    String mml = convertOMML2MML(omml);
    String latex = convertMML2Latex(mml);
    

      假如要画非常特出的几何图形举办显示,几何画板是最棒的挑三拣四,操作起来拾壹分便利,上边是运作截图:


    看了上述教程,就调控了在word二〇一六加多MathType的点子,不管MathType在word二〇一四中是怎么未有的,只要听从上面的步子即可重复安装MathType了。

    一对心体面会

    福如东海这么些作用的时候,手上真的也没太多一直的材质能够参照,走过好几个弯路,英特网查到的新闻许多也是不合时宜只怕把话说一半的。
    在与同事的交换下,使用差别思路,查阅好多api文档,再增进频频的尝尝,也算完毕了那个不算实用的效益。
    不畏你本身自身非常不足美貌,在三个好的团队也财富源推着你前进走。壹个人最终能前行到多少路程,依旧要看与你同行的人。

      新葡亰496net 8

    亟需建议的是,安装加载&对象型,在选用含有公式的word时,会后台自动调用math type服务器,假使计算机质量不足的话,会面世卡顿的景况。

    越来越多利用本领能够关切MathType中文官方网站(www.mathtype.cn)。重返和讯,查看越多

      

    而单单安装对象型,则不会现出这么的景况。但word中不会冒出math type开关,但不影响平时使用。

    小编:

      2)Edraw

    而且,math type不适用大文书档案,一般编辑word页面超越100页,则会现出张开文件耗时极长的场地。

      艾德raw这么些软件或然很六个人都听过,跟visio比起来,好用太多,我们不信的话用一下就明白了,上边是艾德raw能够绘制的图片类别:


      商务图:

    再正是,word 20第10中学早已自带公式编辑器,但功效性并比不上math type庞大,具体地方如图:(示例为office 二〇一四,office 二〇〇八同理)

      新葡亰496net 9

    新葡亰496net 10

      数据库:

    同有的时候候,也可选拔编码,直接在word中开始展览轻松的上下标、分号等输入。

      新葡亰496net 11

    操作办法如图:

      网络图:

    新葡亰496net 12

      新葡亰496net 13

    另有LaTex等,也非常适合实行数学公式的编纂与管理。

      还会有相当的多别的的图,就不一一介绍了。

    而几何画图软件,在word中,比较常用的,是几何画板。

      3)Sigmaplot

    连带内容在此不作赘述。

      假使大家要成立一般的曲线图,用excel就能够了,可是只要要制作十三分专门的学问的曲线图,不妨试一下Sigmaplot,能够说这些软件是最棒的数据图表制作软件,未有之一,非常好用,自从用了它,我再也不曾用excel制作过多少图表了。上面是Sigmaplot运营截图:


    新葡亰496net 14

    以上,但愿本身的答应能够帮到你。

      注意,Sigmaplot暗中认可意况下小数点前边的0是不展现的,假设要出示小数点后边的0,须求开始展览以下设置:

      首先展开调整便面,采用”时钟、语言和区域“,然后接纳”退换日期、时间或数字格式“,然后再弹出的框中选用”别的设置“,然后将”零胚胎显示“改成”0.7“(暗中认可是.7)。

      新葡亰496net 15

      别的,Sigmaplot对汉语帮忙不是很好,特别是坐标轴的标题为华语时会有乱码的状态产生。笔者的化解办法是:

      插入文本框,在文本框里输入坐标轴标题,再把暗中认可的坐标轴标题删掉,把文本框拖到合适的职位就能够。

      4)TableCurve 3D

      假如要绘制3D图形,那几个软件是本身眼下用过的最棒用的软件了,特别方便,补助直接从txt导入数据,上面是运转结果截图:

    新葡亰496net 16

       最终再补偿二个软件,便是只要用office 二零零七的话,是不援救直接将文件件保存为pdf格式的,微软官方有个插件叫做 SaveAspdfandxps,笔者用过那么些插件,一般的word文件保留未有大难题,不过只要word中出现高清3D图形,就能卡死,上面我介绍三个相比好用的pdf虚拟打字与印刷机:pdf factory pro,那一个编造打字与印刷机是本身用过的pdf虚拟打字与印刷机中相比较好用的了,从前用过TinyPDF,福克斯it PDF Creater以及PDFCreater、Adobe PDF Printer,个中PDFCreater和Adobe pdf printer是个人感到最难用的,平时会把计算机卡死或许转不出去文书档案,TinyPDF和Foxit PDF Creater相对来说好用一点,然而这2个软件会境遇三个主题材料正是不常会产出图表丢失的标题,无缘无故地看不到图,如下边包车型大巴截图:

    新葡亰496net 17

       最后试着用了一晃pdf factory pro,确实很好用,不会出现上边说的难题,不会在转成pdf进程卡死,也不会现出图表丢失的标题,个人相比推荐应用。

      以上只是个体观点,仅供就学和参照,希望能帮到大家,让大家更实惠的小说文书档案和科学斟酌散文。

      由于版权难点,在此处就不发下边列举的工具的链接了,假设有哪位朋友有亟待利用以来,能够活动百度只怕在俗尘留言。

    本文由新葡亰496net发布于新葡亰496net,转载请注明出处:新葡亰496netOffice中数学公式用Java解析,office二〇

    关键词: