mhtml2html
converts MHTML
files to a single HTML
file using javascript.
Usage | API | Development
mhtml2html
is compatible with Node >= v4.3.2.
It has only been tested with MHTML files built and used with the latest versions of Chrome
'use strict';
const mhtml2html = require('mhtml2html');
fs.readFile('input.mhtml', 'utf8', function (err, input) {
if (err) {
throw err;
}
// Returns the html document with embedded resources.
const htmlDocument = mhtml2html.convert(input);
// Output the html file.
fs.writeFile('output.html', htmlDocument.documentElement.innerHTML, err => {
if(err) {
return console.log(err);
}
});
});
You can also use it from the command line by running:
mhtml2html <path_to_mhtml_file> <output_file_path>
Include the mhtml2html script under the dist folder:
<script type="text/javascript" src="mhtml2html-${VERSION}-min.js"></script>
<script>
var reader = new FileReader();
reader.addEventListener("loadend", function() {
html = mhtml2html.parse(this.result);
// Alternatively you could convert the result directly and have
// it implicitly parsed i.e html = mhtml2html.convert(this.result);
console.log(mhtml2html.convert(html));
});
reader.readAsText(mhtmlBlob);
</script>
mhtml2html.noConflict();
- Resets the module that was previously defined for browser conflict resolution.
- Returns a localized version of mhtml2html.
mhtml2html.parse(mhtml_string, html_only = false);
- Accepts an MHTML String.
- If html_only is true, returns the html document without resources. Otherwise it returns an MHTML parsed object:
{
"index" : "<html-index-url>",
"assets": {
"<asset-url>" : {
"data" : "<resource-string>",
"id": "<frame-id>",
"type": "<resource-type",
"encoding": "<resource-encoding>"
}
}
}
mhtml2html.convert(mhtml_string or mhtml_object);
- Accepts an MHTML String or parsed MHTML Object.
- Returns an html document element.
To build and test mhtml2html:
- If node_modules haven't been installed already, run
npm install
from the root directory. - Run
./node_modules/gulp/bin/gulp.js
to build the scripts and run tests.
Released under the MIT License