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
    
  • 相关阅读:
    mysql数据库基本操作sql语言
    asp.net MVC4 表单
    asp.net MVC4 表单
    Mysql字符集设置
    zen Code 支持的代码样式
    sqlserver数据库标注为可疑的解决办法(转)
    SQL Server遍历表的几种方法
    GridView 动态添加绑定列和模板列
    TransactionScope 之分布式配置
    sql server 执行上100mb sql sql sql server 无法执行脚本 没有足够的内存继续执行
  • 原文地址:https://www.cnblogs.com/seve/p/14906931.html
Copyright © 2011-2022 走看看