KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jinterop > dcom > test > KainTest


1 package org.jinterop.dcom.test;
2
3
4
5 import java.net.UnknownHostException JavaDoc;
6
7 import org.jinterop.dcom.common.JIException;
8 import org.jinterop.dcom.core.IJIComObject;
9 import org.jinterop.dcom.core.JIComServer;
10 import org.jinterop.dcom.core.JIInterfacePointer;
11 import org.jinterop.dcom.core.JIProgId;
12 import org.jinterop.dcom.core.JISession;
13 import org.jinterop.dcom.core.JIString;
14 import org.jinterop.dcom.core.JIVariant;
15 import org.jinterop.dcom.win32.ComFactory;
16 import org.jinterop.dcom.win32.IJIDispatch;
17
18 public class KainTest {
19
20     private JIComServer comServer = null;
21     private IJIDispatch dispatch = null;
22     private IJIComObject unknown = null;
23     
24     public KainTest(String JavaDoc address, String JavaDoc[] args) throws JIException, UnknownHostException JavaDoc
25     {
26         JISession session = JISession.createSession(args[1],args[2],args[3]);
27         comServer = new JIComServer(JIProgId.valueOf(session,"Word.Application"),address,session);
28     }
29     
30     public void startWord() throws JIException
31     {
32         unknown = comServer.createInstance();
33         dispatch = (IJIDispatch)ComFactory.createCOMInstance(ComFactory.IID_IDispatch,unknown);
34     }
35     
36     public void showWord() throws JIException
37     {
38         int dispId = dispatch.getIDsOfNames("Visible");
39         JIVariant variant = new JIVariant(Boolean.TRUE);
40         dispatch.put(dispId,variant);
41     }
42     
43     public void performOp() throws JIException, InterruptedException JavaDoc
44     {
45          String JavaDoc sDir = "c:\\tmp\\";
46          String JavaDoc sInputDoc = sDir + "file_in.doc";
47          String JavaDoc sOutputDoc = sDir + "file_out.doc";
48
49          String JavaDoc sOldText = "[label:import:1]";
50          String JavaDoc sNewText = "I am some horribly long sentence, so long that [insert bullshit here]";
51          boolean tVisible = true;
52          boolean tSaveOnExit = false;
53
54         System.out.println(((JIVariant)dispatch.get("Version")).getObjectAsString().getString());
55         System.out.println(((JIVariant)dispatch.get("Path")).getObjectAsString().getString());
56         
57         JIVariant variant = dispatch.get("Documents");
58         JIInterfacePointer ptr = variant.getObjectAsInterfacePointer();
59         IJIDispatch documents = (IJIDispatch)ComFactory.createCOMInstance(unknown,ptr);
60         //String has to be a JIString.
61
JIString filePath = new JIString(sInputDoc);
62         //this "open" is of Word 2003
63
JIVariant variant2[] = documents.callMethodA("open",new Object JavaDoc[]{new JIVariant(filePath,true),JIVariant.OPTIONAL_PARAM
64                 ,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,
65                 JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,
66                 JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,
67                 JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,
68                 JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM});
69         
70         IJIDispatch document = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant2[0].getObjectAsInterfacePointer());
71         variant = dispatch.get("Selection");
72         IJIDispatch selection = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer());
73         
74         variant = selection.get("Find");
75         IJIDispatch find = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer());
76         
77         Thread.sleep(2000);
78         
79         find.put("Text",new JIVariant(new JIString(sOldText)));
80         find.callMethodA("Execute",new Object JavaDoc[]{JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM
81                 ,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,
82                 JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,
83                 JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,
84                 JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,
85                 JIVariant.OPTIONAL_PARAM});
86
87         Thread.sleep(2000);
88         
89         selection.put("Text",new JIVariant(new JIString(sNewText)));
90         selection.callMethodA("MoveDown",new Object JavaDoc[]{JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM
91                 ,JIVariant.OPTIONAL_PARAM});
92         selection.put("Text",new JIVariant(new JIString("\nSo we got the next line including BR.\n")));
93         
94         variant = selection.get("Font");
95         IJIDispatch font = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer());
96         font.put("Bold",new JIVariant(1));
97         font.put("Italic",new JIVariant(1));
98         font.put("Underline",new JIVariant(0));
99         
100         variant = selection.get("ParagraphFormat");
101         IJIDispatch align = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer());
102         align.put("Alignment",new JIVariant(3));
103         
104         Thread.sleep(5000);
105         
106         JIString sImgFile = new JIString(sDir + "image.png");
107         selection.callMethodA("MoveDown",new Object JavaDoc[]{JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM
108                     ,JIVariant.OPTIONAL_PARAM});
109         variant = selection.get("InLineShapes");
110         IJIDispatch image = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer());
111         image.callMethodA("AddPicture",new Object JavaDoc[]{new JIVariant(sImgFile),JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM
112                 ,JIVariant.OPTIONAL_PARAM});
113
114         JIString sHyperlink = new JIString("http://www.google.com");
115         selection.put("Text",new JIVariant(new JIString("Text for the link to Google")));
116         variant = selection.get("Range");
117         IJIDispatch range = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer());
118         variant = document.get("Hyperlinks");
119         IJIDispatch link = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer());
120         link.callMethod("Add",new Object JavaDoc[]{range,sHyperlink,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM});
121         
122         variant = dispatch.get("WordBasic");
123         IJIDispatch wordBasic = (IJIDispatch)ComFactory.createCOMInstance(unknown,variant.getObjectAsInterfacePointer());
124         wordBasic.callMethod("FileSaveAs",new Object JavaDoc[]{new JIString(sOutputDoc)});
125         
126         dispatch.callMethod("Quit", new Object JavaDoc[]{new JIVariant(-1,true),JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM});
127         JISession.destroySession(dispatch.getAssociatedSession());
128     }
129     
130     public static void main(String JavaDoc[] args) {
131
132         try {
133                 if (args.length < 4)
134                 {
135                     System.out.println("Please provide address domain username password");
136                     return;
137                 }
138                 KainTest test = new KainTest(args[0],args);
139                 test.startWord();
140                 test.showWord();
141                 test.performOp();
142             } catch (Exception JavaDoc e) {
143                 // TODO Auto-generated catch block
144
e.printStackTrace();
145             }
146     }
147     
148     
149     
150     
151     
152 }
153
Popular Tags