zoukankan      html  css  js  c++  java
  • 记录一种基于Java的MathML转图片的方法

    Maven依赖:
    <dependency>
    	<groupId>de.rototor.jeuclid</groupId>
    	<artifactId>jeuclid-core</artifactId>
    	<version>3.1.14</version>
    </dependency>
    
    示例:
    @Test
    public void testMathMlToImg() throws IOException {
    	//MathML字符串
    	String mathStr = "<math xmlns="http://www.w3.org/1998/Math/MathML">
    " +
    			"        <mi>f</mi>
    " +
    			"            <mo>(</mo>
    " +
    			"            <mi>x</mi>
    " +
    			"            <mo>)</mo>
    " +
    			"            <mo>&gt;</mo>
    " +
    			"            <mfrac>
    " +
    			"                <msqrt>
    " +
    			"                    <mn>2</mn>
    " +
    			"                </msqrt>
    " +
    			"                <mn>8</mn>
    " +
    			"            </mfrac>
    " +
    			"            <mo>+</mo>
    " +
    			"            <mn>1</mn>
    " +
    			"        </math>";
    	//创建转换器
    	Converter converter = Converter.getInstance();
    	//创建layoutContext并设置相关参数
            //参数设置可以参考net.sourceforge.jeuclid.context.Parameter类
            //参数默认值可以参考LayoutContextImpl类构造方法
    	LayoutContextImpl layoutContext = (LayoutContextImpl) LayoutContextImpl.getDefaultLayoutContext();
    	//设置公式字体大小,默认12.0pt
    	layoutContext.setParameter(Parameter.MATHSIZE, 30);
    	//设置公式颜色,默认黑色
    	layoutContext.setParameter(Parameter.MATHCOLOR, Color.RED);
    	//转换
    	Dimension dimension = converter.convert(mathStr, new FileOutputStream("f:/1.png"), "image/png", layoutContext);
    	if(dimension != null){
    		System.out.println("图片转换成功!高:" + dimension.getHeight() + " 宽:" + dimension.getWidth());
    	}
    }
    

    输出结果:

    图片转换成功!高:70.0 宽:149.0
    

    转换结果如下:

    关于outFileType参数的取值,支持以下几种:

    image/png
    image/vnd.wap.wbmp
    image/x-png
    image/jpeg
    image/tiff
    image/bmp
    image/gif
    
  • 相关阅读:
    Docker宿主机登陆Container方法
    Get Docker for CentOS and Installing Docker
    CentOS7网络配置
    国内npm镜像源推荐及使用
    CentOS6.5源码安装python3.5.2
    阿里云SLB后Nginx、Tomcat获取真实IP
    MacOS清除管理员密码
    SVN-修改已提交的日志
    爬虫的初始和requests模块基础用法
    利用面向对象写的登录与注册
  • 原文地址:https://www.cnblogs.com/seve/p/14906931.html
Copyright © 2011-2022 走看看