Beschreibung:
Dieses Snippet wandelt ein herkömmliches Word-Dokument (unter Verwendung des Word-Objektmodells) in eine HTML-Datei um. Das besondere dabei ist, dass keinerlei COM-Verweise benötigt werden und das Snippet mit jeder Word-Version ab Word 97 oder höher funktioniert.
// using System.Reflection; nicht vergessen!
/// <summary>
/// Wandelt ein bestimmtes Word-Dokument in HTML um.
/// </summary>
/// <param name="source">Quelldokument</param>
/// <param name="destination">Zieldokument</param>
public static void ConvertWord2Html(string source, string destination)
{
// Konstante für Word-HTML-Ausgabeformat
const int WORD_HTML_FORMAT=8;
// COM-Metadaten von Word.Application aus der Registry laden
Type wordApplication=Type.GetTypeFromProgID("Word.Application");
// Neue Instanz von Word erzeugen
object word = Activator.CreateInstance(wordApplication);
// Word sichtbar machen (Visible=true)
//wordApplication.InvokeMember("Visible",BindingFlags.IgnoreCase | BindingFlags.SetProperty | BindingFlags.Public,null,word,new object[1]{true});
// Dokumentauflistung abrufen
object documents = wordApplication.InvokeMember("Documents", BindingFlags.IgnoreCase | BindingFlags.GetProperty | BindingFlags.Public, null, word, new object[0]);
// COM-Metadaten von Word.Documents ermitteln
Type wordDocuments = documents.GetType();
// Quelldokument laden
object document=wordDocuments.InvokeMember("Open", BindingFlags.IgnoreCase | BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.OptionalParamBinding, null, documents, new object[1] {source});
// COM-Metadaten von Word.Document ermitteln
Type wordDocument = document.GetType();
// HTML erzeugen
wordDocument.InvokeMember("SaveAs", BindingFlags.IgnoreCase | BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.OptionalParamBinding, null, document, new object[2] {destination,WORD_HTML_FORMAT});
// Word schließen
wordApplication.InvokeMember("Quit", BindingFlags.IgnoreCase | BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.OptionalParamBinding, null, word, new object[0]);
}
Schlagwörter: Word, HTML, konvertieren, DOC
Quelle: .NET-Snippets
Hallo,
ist es möglich den fortschritt einer Konvertierung abzufragen oder in erfahrung zu bringen wann diese beendet ist ?
Hallo,
ist es möglich den fortschritt einer Konvertierung abzufragen oder in erfahrung zu bringen wann diese beendet ist ?
bei diesem Beispiel könnte das schwierig werden, denn das speichern läuft hier ab:
// COM-Metadaten von Word.Document ermitteln
Type wordDocument = document.GetType();
// HTML erzeugen
wordDocument.InvokeMember("SaveAs", BindingFlags.IgnoreCase | BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.OptionalParamBinding, null, document, new object[2] {destination,WORD_HTML_FORMAT});
Also in diesem Beispiel denke ich nicht.
In der Zeit vor fünf Minuten ist Jetzt die Zukunft. Jetzt ist die Gegenwart. Die Zeit, in der ich zu erzählen begonnen habe, ist die Vergangenheit von Jetzt und die Zukunft von der Gegenwart der Zeit, fünf Minuten bevor ich zu erzählen begann.