基于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 中的 Unsafe 魔法类的作用大全
Jun 26 Java/Android
Java中PriorityQueue实现最小堆和最大堆的用法
Jun 27 Java/Android
Java集成swagger文档组件
Jun 28 Java/Android
Spring Boot 实现敏感词及特殊字符过滤处理
Jun 29 Java/Android
浅谈spring boot使用thymeleaf版本的问题
Aug 04 Java/Android
深入浅出讲解Java8函数式编程
Jan 18 Java/Android
Spring this调用当前类方法无法拦截的示例代码
Mar 20 Java/Android
Flutter Navigator 实现路由传递参数
Apr 22 Java/Android
Java线程的6种状态与生命周期
May 11 Java/Android
Java数据结构之堆(优先队列)
May 20 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
vue-axios使用详解
2017/05/10 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
Python中List.index()方法的使用教程
2015/05/20 Python
详解python调度框架APScheduler使用
2017/03/28 Python
Python进程间通信之共享内存详解
2017/10/30 Python
TensorFlow的权值更新方法
2018/06/14 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
2015年小学英语教师工作总结
2015/05/12 职场文书
上学路上观后感
2015/06/16 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
五年级作文之成长
2019/09/16 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS