一、问题描述
本地应用程序开发,例如.net平台下的winform编程,显示数学公式是一件麻烦的事情,如果要将显示的数学公式导出为word与pdf,将更让人头疼。本文将介绍利用js与html脚本技术,解决上述问题的方法。
二、方法摘要
以.net平台winform开发为例,分为以下几个步骤:
1. 用WebBrowser控件作为数学公式的显示平台,数学公式用html页面来显示;
2. 用MathJax.js作为数学公式解释脚本,支持MathML、LaTex等数学描述语言;
3. 用Aspose.Words(建议用16.x及以上版本)将html页面转换为word(docx版本)文件;
4. 用wkhtmltopdf将html页面转换为pdf文件;
三、过程详述
–下载MathJax.js、Aspose.Words.dll和wkhtmltopdf
github上下载MathJax.js极其依赖库:https://github.com/mathjax/MathJax.git
注意:html5支持MathML语法,但是chrome和IE(至少我电脑上装的版本,IE11)目前不支持,而WebBorwser默认选用你电脑上的IE作为解释引擎,所以需要引入MathJax.js库。
–创建工程
vs创建工程,添加html与js脚本目录。图中创建了math文件,添加MathJax.js极其依赖库(依赖库没显示全),并创建pages文件夹,pageshow.html用于显示需要展示的数学公式。
–绑定WebBorwser控件
在From1的设计面板中,添加WebBorwser控件,并关联pageshow.html:
//C#代码
private string page_path = System.Environment.CurrentDirectory + "/math/pages/pageshow.html";//获取页面路径
this.webBrowser1.Url = new Uri("file:///" + page_path);//在WebBorwser上加载改页面
//html脚本
<!DOCTYPE html>
<html>
<head>
<title>MathJax MathML Test Page</title>
<!-- Copyright (c) 2010-2017 The MathJax Consortium -->
<meta http-equiv=