基于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 Optional<Foo>转换成List<Bar>的实例方法
Jun 20 Java/Android
springboot集成flyway自动创表的详细配置
Jun 26 Java/Android
Springboot集成阿里云OSS上传文件系统教程
Jun 28 Java/Android
分析JVM源码之Thread.interrupt系统级别线程打断
Jun 29 Java/Android
使用@Value值注入及配置文件组件扫描
Jul 09 Java/Android
gateway网关接口请求的校验方式
Jul 15 Java/Android
java如何实现socket连接方法封装
Sep 25 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
Java 在线考试云平台的实现
Nov 23 Java/Android
Java 使用类型为Object的变量指向任意类型的对象
Apr 13 Java/Android
springboot如何初始化执行sql语句
Java循环队列与非循环队列的区别总结
Jun 22 #Java/Android
springBoot基于webSocket实现扫码登录
Jun 22 #Java/Android
SpringBoot集成Redis,并自定义对象序列化操作
Java如何实现树的同构?
启动Tomcat时出现大量乱码的解决方法
详解java如何集成swagger组件
You might like
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
php设计模式 Facade(外观模式)
2011/06/26 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
PHP比你想象的好得多
2014/11/27 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
在Django框架中编写Contact表单的教程
2015/07/17 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
python设置随机种子实例讲解
2019/09/12 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
如何开发安全的AJAX应用
2014/03/26 面试题
创建文明城市标语
2014/06/16 职场文书
会计个人实习计划书
2014/08/15 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
2015年护士节慰问信
2015/03/23 职场文书
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python