MathType Generic integration

This document will assist those developers who want to integrate MathType in their platforms, and there is not a specific integration already available. More precisely this document covers two scenarios:
  • Integrating MathType into an HTML editor.
  • Integrating MathType into a simple Textarea. For example in wikis, blogs and other Web applications that use plain textareas to edit rich HTML text.
Technology Demo Integration download link
PHP servers Demo site Download
ASP.NET Demo site Download
Java servlet Demo site Download
Ruby on Rails Demo site Download
  • A web server with PHP, ASP.NET or Java servlets compatibility (or another language, but our internal engine is only distributed in PHP, ASP.NET and as Java servlet).
  • A web server with UTF-8 encoding compatibility.
  • Knowledge of Javascript language.
  • A valid license to install the integration in a production environment; otherwise, you can use the downloaded file just for demo purposes.
In versions older than 3.50.0 the name of the integration directory was pluginwiris instead of generic_wiris.


Our integration is available for various technologies. Click below on the technology you are using to see full instructions you should follow.

For PHP servers

  1. mbstring extension must be installed and enabled in the server.
  2. Copy generic_wiris directory in your web system root path. Then, open generic_wiris/configuration.ini and set your values. This table specifies all possible parameters.
  3. Give execution right to the web server user on the PHP files contained at generic_wiris/integration.

For ASP.NET servers

Copy generic_wiris directory in your web system root path.

Create an application on your IIS through your control panel. The application root directory depends on the MathType integration package that you have downloaded.

  • For demo package: create an application with root directory on the extracted folder.
  • For integration package: create an application with root directory on /generic_wiris. For versions older than 3.50.0 you need to create the application at /pluginwiris/integration. If, given your project requirements or architecture, you need to have only one application move /generic_wiris/bin contents to the /bin directory of your project and copy the Web.config configuration to your project Web.config. If you use .NET 4.0 or above use the values of Web.config4.0.

Now, open generic_wiris/configuration.ini and set your own values. This table specifies all possible parameters.

As Java servlet

  • Install the pluginwiris_engine.war in your Java web applications server (tomcat).
  • Copy generic_wiris directory in your web system root path. Then, open pluginwiris_engine/WEB-INF/generic_wiris/configuration.ini and set your own values.This table specifies all possible parameters. For versions older than 3.50.0 it is essential that you set wiriscachedirectory and wirisformuladirectory.

For Ruby on Rails

  1. Install wirispluginengine gem manually.
  2. Specify wirispluginengine gem inside your application's Gemfile.
  3. Mount Wirispluginengine engine into your application's config/routes.rb file, adding the following line: mount Wirispluginengine::Engine => 'wirispluginengine'
  4. Copy generic_wiris directory in your /vendor/assets/javascripts folder
  5. Give write permissions to wirispluginengine-X.Y.Z/cache and to wirispluginengine-X.Y.Z/formulas directories to the web server user. Those folders will be used to store formula MathML codes and temporal images. If you prefer, you can configure the location of these folders (see section 3).

There are some rules for integration development:

Don’t edit generic_wiris/core files. These files are the integration kernel. We pledge to upgrade only those files in future versions.

Important complementary information

MathType integration follows this criterion:

  • It uses the generic_wiris/formulas directory to save the MathML of the formulas (source of the formulas). These files are essential. If you want to migrate your web server, remember copying that directory, or your created equations (for example, in post forums) will be lost.
  • It uses generic_wiris/cache directory to save image files. These files aren’t critical. You can delete them whenever you want; they will be created again automatically when browsers will request the images of the formulas.

You can use this example code to load your implementation:

<script type="text/javascript" src="./generic_wiris/core/core.js"></script>
<script type="text/javascript" src="./generic_wiris/wirisplugin-generic.js"></script>

MathType integration core uses three global variables that you should use/modify:

  • _wrs_currentPath: contains the current URL path (for Safari fixes).
  • _wrs_isNewElement: you must set this Boolean variable when you are opening a new editor window true or false depending on if you are creating a new formula or editing it.
  • _wrs_temporalImage: you must set this object variable when you are opening a new editor window. It must contain the image that you are editing. See integration.js for more information.

There are core functions that you can use but not modify. These functions are in generic_wiris/core/core.js.

There are simple examples of MathType Integrations that you can download.