Hallo,
ich arbeite mich gerade in Word Automation ein und bin dank Sebastian.Lange auf NetOffice gestoßen. Das ist auch echt super und einfach.
Nun will ich Schriftvorlagen definieren, also Größe und Schriftart...
Diese sollen dann nur noch bei dem jeweiligen Text aufgerufen werden.
Quasi wie bei Word "Standard", "Überschrift 1", "Überschrift 2"...
(Daraus will ich mir dann auch ein Inhaltsverzeichnis erstellen.)
Aber wie kann ich diese Vorlagen definieren und dann aufrufen. Forumsuche/Google haben nix gebracht.
Wenn ich mit Bookmarks und einem Word-Template arbeite, kann ich ja Sachen vordefinieren, aber dann springt der Text auch immer an die Stelle wo sich das Bookmark im Template befindet. Das will ich aber nicht.
Grüße Christian
Hallo,
Der Wrapper ist Klasse und hat mir auch schon gut geholfen...nur hab ich Probleme mit der SetProperty Funktion.
Und das an zwei Unterschiedlichen stellen : Zugriff auf Header und Font-Size
Mein Code für den Headerzugriff:
//early binding: oWord.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekCurrentPageHeader;
Object[] objWdSeedCurrentPageHeader = new Object[1];
objWdSeedCurrentPageHeader[0] = 9;
ComObject header= word.GetObjectReturningProperty("ActiveWindow");
header= header.GetObjectReturningProperty("ActivePane");
header= header.GetObjectReturningProperty("View");
// Bis hier läuft es
header.SetProperty("SeekView", objWdSeedCurrentPageHeader);
und der Code für die Schrifgröße:
ComObject Font_Size = selection.GetObjectReturningProperty("Font");
Font_Size.SetProperty("Size", new object[1] { 12 });
Fehler:> Fehlermeldung:
Ein Aufrufziel hat einen Ausnahmefehler verursacht.
Weiß jemand wo der Fehler steckt?
Irgendwie steh ich aufm Schlauch...ist bestimmt nur irgendwas kleines dummes ^^
grüße, Minski
Hallo...ich klinke mich mal in den Thread ein (ist zwar schon alt), habe nämlich genau das gleiche Problem
im early binding läuft es ja so ab:
object Bookmark = (int)Microsoft.Office.Interop.Word.WdGoToItem.wdGoToBookmark;
oWord.Selection.GoTo(ref Bookmark, ref missing, ref missing, ref NameBookMark);
und im late Binding auch mit der GoTo Methode wie Rainbird schon geschrieben hat, aber da bekomme ich immer Fehler, mein Code:
Type comType = Type.GetTypeFromProgID("Word.Application");
object word = Activator.CreateInstance(comType);
word.GetType().InvokeMember("Visible", BindingFlags.OptionalParamBinding | BindingFlags.SetProperty, null, word, new object[1] { true });
// Dateiname festlegen
string template1 = @"C:\\Users\\Template.dot";
// Aktuelles Dokument abrufen
object documents = wordType.InvokeMember("Documents", BindingFlags.GetProperty, null, word, new object[0]);
object document = documents.GetType().InvokeMember("Add", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, documents, new object[1] {template1});
// -> hier ist das Problem
document.GetType().InvokeMember("Goto", BindingFlags.SetProperty | BindingFlags.OptionalParamBinding, null, document, new object[2] { -1, "Title" });
//oder
// object oMissing = System.Reflection.Missing.Value;
// document.GetType().InvokeMember("Goto", BindingFlags.SetProperty | BindingFlags.OptionalParamBinding, null, document, new object[4] { -1,oMissing ,oMissing, "Title" });
// ->
object selection = wordType.InvokeMember("Selection", BindingFlags.GetProperty | BindingFlags.OptionalParamBinding, null, word, new object[0]);
selection.GetType().InvokeMember("TypeText", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, selection, new object[1] { "Text hier " });
Fehler:
Ein Aufrufziel hat einen Ausnahmefehler verursacht.
Bist du da weiter gekommen Nasenkalli?
grüße, Christian
EDIT:
hab es hin bekommen mit
selection.GetType().InvokeMember("Goto", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, selection, new object[4] { -1, oMissing, oMissing, "Picture" });
selection.GetType().InvokeMember("TypeText", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, selection, new object[1] { "Text hier " });
Dann schreibt er den Text an den richtigen Textmarker