数学方程支持Java中的xhtml到pdf转换

时间:2017-05-29 12:26:13

标签: java html pdf math mathjax

我正在尝试使用ItextRenderer将我的xhtml代码转换为pdf,但问题是数学方程没有很好地转换。我使用mathjax在所有浏览器中查看方程式:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><script type="text/javascript"src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=MML_HTMLorMML"/>

这是我的HTML代码:

<math xmlns:xlink="http://www.w3.org/1999/xlink" overflow="scroll">
 <msup xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math">
   <mrow>
     <mfenced separators="|">
       <mrow>
         <mi>x</mi>
         <mo>+</mo>
         <mi>a</mi>
      </mrow>
    </mfenced>
  </mrow>
  <mrow>
    <mi>n</mi>
  </mrow>

html pdf转换器代码是这样的:

OutputStream os = new FileOutputStream("outputPDF.pdf");
 ITextRenderer renderer = new ITextRenderer();
 String url = new File("inputHtml.html").toURI().toURL().toString();
 renderer.setDocument(url);
 renderer.layout();
 renderer.createPDF(os);
 os.close();

问题在于pdf除了方程之外都是有效的。这是pdf中的等式Equation in pdf

有没有办法在pdf中应用函数?还是以其他方式在Java中应用?谢谢!!

1 个答案:

答案 0 :(得分:1)

您可以更改MathJax output formats。而不是生成xhtml,你可以使它生成SVG输出。也许值得尝试HTML-css输出格式,ITextRenderer可能只是能够更好地应对。

另一种途径可能是去LaTeX。有很好的LaTeX到pdf转换器。但是,这些不能处理html文档的其余部分。