基于Java的MathML轉圖片的方法(示例代碼)
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>></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>";
//創(chuàng)建轉換器
Converter converter = Converter.getInstance();
//創(chuàng)建layoutContext并設置相關參數(shù)
//參數(shù)設置可以參考net.sourceforge.jeuclid.context.Parameter類
//參數(shù)默認值可以參考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
轉換結果如下:

關于outFileType參數(shù)的取值,支持以下幾種:
image/png
image/vnd.wap.wbmp
image/x-png
image/jpeg
image/tiff
image/bmp
image/gif
以上就是基于Java的MathML轉圖片的方法(示例代碼)的詳細內容,更多關于Java MathML轉圖片的資料請關注腳本之家其它相關文章!
相關文章
Java多線程正確使用倒計時協(xié)調器CountDownLatch方法詳解
這篇文章主要為大家介紹了Java多線程倒計時協(xié)調器CountDownLatch的正確使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
詳解SpringMVC組件之HandlerMapping(二)
這篇文章主要介紹了詳解SpringMVC組件之HandlerMapping(二),HandlerMapping組件是Spring?MVC核心組件,用來根據(jù)請求的request查找對應的Handler,在Spring?MVC中,有各式各樣的Web請求,每個請求都需要一個對應的Handler來處理,需要的朋友可以參考下2023-08-08
java利用mybatis攔截器統(tǒng)計sql執(zhí)行時間示例
這篇文章主要介紹了java利用mybatis攔截器統(tǒng)計sql執(zhí)行時間示例,該攔截器攔截mybatis的query和update操作,能統(tǒng)計sql執(zhí)行時間2014-03-03
關于Springboot | @RequestBody 接收到的參數(shù)對象屬性為空的問題
這篇文章主要介紹了關于Springboot | @RequestBody 接收到的參數(shù)對象屬性為空的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
SpringBoot中實現(xiàn)異步調用@Async詳解
這篇文章主要介紹了SpringBoot中實現(xiàn)異步調用@Async詳解,在SpringBoot的日常開發(fā)中,一般都是同步調用的,但實際中有很多場景非常適合使用異步來處理,需要的朋友可以參考下2024-01-01

