基於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>&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

轉換結果如下:

關於outFileType參數的取值,支持以下幾種:

image/png
image/vnd.wap.wbmp
image/x-png
image/jpeg
image/tiff
image/bmp
image/gif

以上就是基於Java的MathML轉圖片的方法(示例代碼)的詳細內容,更多關於Java MathML轉圖片的資料請關註WalkonNet其它相關文章!

推薦閱讀: