基于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 相关文章推荐
Java中常用解析工具jackson及fastjson的使用
Jun 28 Java/Android
Spring中bean的生命周期之getSingleton方法
Jun 30 Java/Android
gateway网关接口请求的校验方式
Jul 15 Java/Android
Lombok的详细使用及优缺点总结
Jul 15 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
Jan 18 Java/Android
Android自定义ScrollView实现阻尼回弹
Apr 01 Java/Android
Java 常见的限流算法详细分析并实现
Apr 07 Java/Android
Android开发 使用文件储存的方式保存QQ密码
Apr 24 Java/Android
Spring Data JPA框架持久化存储数据到数据库
Apr 28 Java/Android
springboot创建的web项目整合Quartz框架的项目实践
Jun 21 Java/Android
Spring Cloud OpenFeign模版化客户端
Jun 25 Java/Android
Java获取字符串编码格式实现思路
Sep 23 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创建PDF中文文档
2006/10/09 PHP
解析php中的escape函数
2013/06/29 PHP
php事务处理实例详解
2014/07/11 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
回调函数的意义以及python实现实例
2017/06/20 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
用Python实现读写锁的示例代码
2018/11/05 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
后天观后感
2015/06/08 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis