Hi,
ich habe mir die JACOB Libs runtergeladen und eingebunden. Funktioniert alles super, jedoch bin ich nicht gerade der VB Experte.
Es geht darum Datenbestände aus dem Java (mit DB-Anbindung) in eine Wordvorlage zu speichern, und dazu verwende ich die Textmarken von Word.
Habe früher einfach die WordAPI genutzt, jedoch funktioniert diese nicht mehr bzw. nicht immer. Außerdem gefällt mit die Kommunikation der WordAPI nicht (von Java -> Textdatei -> WordAPI.exe -> Word)
Mein Ziel ist es eine IN-Code WordAPI mit den selben Funktionen wie die WordAPI zu schreiben. Mein Problem ist die Übersetzung von VB (besser: Word Macros) in Java (besser: JACOB).
Habe schon verzweifelt nach anspruchsvollern Tutorials für JACOB gesucht, jedoch ohne Erfolg. Bin für jegliche Art von Hilfe offen.
Danke schon mal im Vorraus.
ich habe mir die JACOB Libs runtergeladen und eingebunden. Funktioniert alles super, jedoch bin ich nicht gerade der VB Experte.
Es geht darum Datenbestände aus dem Java (mit DB-Anbindung) in eine Wordvorlage zu speichern, und dazu verwende ich die Textmarken von Word.
Habe früher einfach die WordAPI genutzt, jedoch funktioniert diese nicht mehr bzw. nicht immer. Außerdem gefällt mit die Kommunikation der WordAPI nicht (von Java -> Textdatei -> WordAPI.exe -> Word)
Mein Ziel ist es eine IN-Code WordAPI mit den selben Funktionen wie die WordAPI zu schreiben. Mein Problem ist die Übersetzung von VB (besser: Word Macros) in Java (besser: JACOB).
Code:
package mywordapi;
import com.jacob.com.*;
import com.jacob.activeX.*;
/*
* Dieses Programm öffnet eine Word-Vorlage und speichert
* diese unter einem andern Namen wieder ab.
*
* Ziel ist es, dass enthaltene Textmarken befüllt werden.
*/
public final class WordProcessing
{
static String temp_dir = "C:\\WordTemplates\\"; //Pfad für Vorlage und Speichern
static String temp_file = "Template.dot";
static String newfile = "MyDocument.doc";
public static void searchWordFile()
{
ActiveXComponent wordApp = new ActiveXComponent("Word.Application");
wordApp.setProperty("Visible", new Variant(true));
Object documents = wordApp.getProperty("Documents").toDispatch();
Object document = Dispatch.call((Dispatch) documents, "Add", temp_dir + temp_file).toDispatch();
/*
* Vorlage von VB-Macro:
* =====================
*
* Hier wird eine Textmarke "ArztPLZOrt" gesucht und anschließend an dessen
* Stelle ein Text geschrieben.
*
* -----------
* Selection.GoTo What:=wdGoToBookmark, Name:="ArztPLZOrt"
* Selection.TypeText Text:="TEST"
* -----------
*
* Mein fehlgeschlagener Versuch:
* ==============================
*
* Object Selection = wordApp.getProperty("Selection").toDispatch();
* Selection = Dispatch.call((Dispatch) Selection, "Goto",new Variant("What:=wdGoToBookmark"),new Variant("Name:=\"ArztPLZOrt\")"));
* Dispatch.call((Dispatch) Selection, "TypeText","Text:=\"TEST\"");
*
*/
Dispatch.call((Dispatch) document, "SaveAs", new Variant("\"" + temp_dir + newfile + "\""));
}
}
Habe schon verzweifelt nach anspruchsvollern Tutorials für JACOB gesucht, jedoch ohne Erfolg. Bin für jegliche Art von Hilfe offen.
Danke schon mal im Vorraus.