---
title: 'mime4j für MS-Web-Archive MHT'
url: 'https://tutego.de/blog/javainsel/2006/01/mime4j-fur-ms-web-archive-mht'
markdown: 'https://tutego.de/blog/javainsel/2006/01/mime4j-fur-ms-web-archive-mht.md'
date: '2006-01-12'
description: 'Während Word und Excel beim Export einzelnde (mehr oder wenig schöne) XML-Dateien erzeugen (können), macht PPT das nicht: Es generiert entweder eine Sammlung von XML/HTML/GIF/.. Dateien, oder packt alle Dateien in ein MHT-Datei. Möchte man diese Datei auseinandernehmen, kann man gut http://mime4j.s…'
taxonomy:
  category:
    - 'Open Source'
---

# mime4j für MS-Web-Archive MHT

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## mime4j für MS-Web-Archive MHT

12.01.2006 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

Während Word und Excel beim Export einzelnde (mehr oder wenig schöne) XML-Dateien erzeugen (können), macht PPT das nicht: Es generiert entweder eine Sammlung von XML/HTML/GIF/.. Dateien, oder packt alle Dateien in ein MHT-Datei. Möchte man diese Datei auseinandernehmen, kann man gut <http://mime4j.sourceforge.net/apidocs/> nutzen, denn MS bündelt die Dokumente wie eine MIME-EMail. Zunächst benötigt man einen Handler:

```java
package TEST;

import java.io.IOException;
import java.io.InputStream;

import org.mime4j.BodyDescriptor;
import org.mime4j.SimpleContentHandler;
import org.mime4j.message.Header;

public class MyHandler extends SimpleContentHandler
{
 @Override
 public void headers( Header header )
 {
 System.out.println( header );
 }

 @Override
 public void bodyDecoded( BodyDescriptor bd, InputStream is ) throws IOException
 {
 System.out.println( bd );
 }
}
```

Der macht jetzt nicht viel, man sieht aber das Prinzip.

Der Quellcode des Parsers ist auch kurz:

```java
package TEST;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

import org.mime4j.ContentHandler;
import org.mime4j.MimeStreamParser;

public class Mime4J
{
```

public static void main( `String`\[\] args ) throws `IOException`

```java
 {
 ContentHandler handler = new MyHandler();
 MimeStreamParser parser = new MimeStreamParser();
 parser.setContentHandler( handler );
 parser.parse( new BufferedInputStream( new FileInputStream( "c:/a.mht" ) ) );
 }
}
```

Auf der Konsole folgen dann Ausgaben wie

MIME-Version: 1.0 Content-Type: multipart/related; boundary=“—-=\_NextPart\_01C617A0.DCEFFF40″

Content-Location: file:///C:/EC2C4D01/a.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=“us-ascii“

text/html Content-Location: file:///C:/EC2C4D01/a-Dateien/master29.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=“us-ascii“

text/html Content-Location: file:///C:/EC2C4D01/a-Dateien/master29.xml Content-Transfer-Encoding: quoted-printable Content-Type: text/xml; charset=“utf-8″

Ein Java-Programm (nicht quelloffen), was das schon alles macht — und für Mac/Linux ganz spannend ist, ist unmhtml von <http://www.joecheng.com/code/>.

Kategorien: [Open Source](https://tutego.de/blog/javainsel/category/open-source/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)
