mime4j für MS-Web-Archive MHT

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:

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:

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
{
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/.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert