基于Java的MathML转图片的方法(示例代码)


Posted in Java/Android onJune 23, 2021

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\">\n" +
			"        <mi>f</mi>\n" +
			"            <mo>(</mo>\n" +
			"            <mi>x</mi>\n" +
			"            <mo>)</mo>\n" +
			"            <mo>&gt;</mo>\n" +
			"            <mfrac>\n" +
			"                <msqrt>\n" +
			"                    <mn>2</mn>\n" +
			"                </msqrt>\n" +
			"                <mn>8</mn>\n" +
			"            </mfrac>\n" +
			"            <mo>+</mo>\n" +
			"            <mn>1</mn>\n" +
			"        </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

转换结果如下:

基于Java的MathML转图片的方法(示例代码)

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

image/png
image/vnd.wap.wbmp
image/x-png
image/jpeg
image/tiff
image/bmp
image/gif

以上就是基于Java的MathML转图片的方法(示例代码)的详细内容,更多关于Java MathML转图片的资料请关注三水点靠木其它相关文章!

Java/Android 相关文章推荐
springboot @ConfigurationProperties和@PropertySource的区别
Jun 11 Java/Android
Java Optional<Foo>转换成List<Bar>的实例方法
Jun 20 Java/Android
分析设计模式之模板方法Java实现
Jun 23 Java/Android
Java中PriorityQueue实现最小堆和最大堆的用法
Jun 27 Java/Android
java固定大小队列的几种实现方式详解
Jul 15 Java/Android
MyBatis自定义SQL拦截器示例详解
Oct 24 Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
Android 界面一键变灰 深色主题工具类
Apr 28 Java/Android
springcloud整合seata
May 20 Java/Android
Java完整实现记事本代码
Jun 16 Java/Android
基于Android10渲染Surface的创建过程
Aug 14 Java/Android
springboot如何初始化执行sql语句
Java循环队列与非循环队列的区别总结
Jun 22 #Java/Android
springBoot基于webSocket实现扫码登录
Jun 22 #Java/Android
SpringBoot集成Redis,并自定义对象序列化操作
Java如何实现树的同构?
启动Tomcat时出现大量乱码的解决方法
详解java如何集成swagger组件
You might like
php array_intersect()函数使用代码
2009/01/14 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
leaflet加载geojson叠加显示功能代码
2020/02/21 Javascript
原生JS实现天气预报
2020/06/16 Javascript
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
Python中Threading用法详解
2017/12/27 Python
Python中optparser库用法实例详解
2018/01/26 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
Python笔记之代理模式
2019/11/20 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
数据库方面面试题
2012/04/22 面试题
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
服装电子商务创业计划书
2014/01/30 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
英语演讲开场白
2015/05/29 职场文书
Python基础之元类详解
2021/04/29 Python
python字符串的一些常见实用操作
2022/04/06 Python
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android