基于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 相关文章推荐
总结一下关于在Java8中使用stream流踩过的一些坑
Jun 24 Java/Android
利用Java设置Word文本框中的文字旋转方向的实现方法
Jun 28 Java/Android
SpringBoot 拦截器妙用你真的了解吗
Jul 01 Java/Android
解决Jenkins集成SonarQube遇到的报错问题
Jul 15 Java/Android
Java移除无效括号的方法实现
Aug 07 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
Java 获取Word中所有的插入和删除修订的方法
Apr 06 Java/Android
Java 垃圾回收超详细讲解记忆集和卡表
Apr 08 Java/Android
Java字符缓冲流BufferedWriter
Apr 09 Java/Android
一文了解Java动态代理的原理及实现
Jul 07 Java/Android
tree shaking对打包体积优化及作用
Jul 07 Java/Android
SpringBoot详解自定义Stater的应用
Jul 15 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与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
php+mysql数据库查询实例
2015/01/21 PHP
PHP文件操作方法汇总
2015/07/01 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
thinkphp分页集成实例
2017/07/24 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Python Gitlab Api 使用方法
2019/08/28 Python
Pytorch 实现权重初始化
2019/12/31 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
python常用运维脚本实例小结
2020/02/14 Python
python实现猜数游戏
2020/03/27 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
Java模拟试题
2014/11/10 面试题
家具促销活动方案
2014/02/16 职场文书
社会实践活动总结
2015/02/05 职场文书
干部考核工作总结2015
2015/07/24 职场文书