¿Cómo utilizar Jacob para obtener comentarios de documentos de Word?
ComThread.InitSTA();//Inicializar el hilo de comunicación, ¡esto es muy importante! Llame al método de liberación al final
2. Inicialice la aplicación de Word, cree un nuevo documento en blanco y obtenga el objeto de contenido del documento //Crea una instancia de objWord //Declara el objeto de palabra
ActiveXComponent objWord = new ActiveXComponent("Word.Application");
//Asignar un objeto de palabra local
Dispatch wordObject = (Dispatch) objWord.getObject();
/ /Cree un parámetro de Dispatch para mostrar el documento abierto
Dispatch.put((Dispatch) wordObject, "Visible", new Variant(true)); // new Variant(true) significa que la palabra aplicación es visible
Consejo: al configurar las propiedades del objeto, utilice el método put de Dispatch para asignar valores a las propiedades. Documents").toDispatch(); //documents representa todas las ventanas de documentos de Word (Word es una aplicación de múltiples documentos)
/Agregar un nuevo documento de Word, el documento activo actual
Dispatch document = Dispatch.call(documents, "Add").toDispatch() // Utilice el comando Agregar para crear un nuevo documento y utilice el comando Abrir para abrir un documento existente
Sugerencia : Llame al método de objeto, utilice el método de llamada Dispatch. La declaración anterior es equivalente a la declaración vb document = document.Add()
Dispatch wordContent = Dispatch.get(document, "Content").toDispatch. (); // Obtener el contenido del documento de Word
Consejo: utilice el método get de Dispatch para obtener las variables miembro (propiedades) del objeto.
get(wordContent, "Paragraphs").toDispatch(); // Todos los párrafos
int párrafoCount = Dispatch.get(paragraphs, "Count").toInt() // en **** Número de párrafos
//Encuentra el párrafo que acabas de escribir y formatéalo
Dispatch lastParagraph = Dispatch.call (paragraphs, "Item",
new Variant( parrafoCount)).
toDispatch(); // Último párrafo
Dispatch lastParagraphRange = Dispatch.get(lastParagraph, "Range").put(font, "Size",new Variant (12)); //SmallerFour
Nota: si desea insertar una nueva línea en blanco, debe configurar el formato de texto del párrafo al mismo tiempo; de lo contrario, el formato de texto del recién insertado. La línea será la misma que el formato del párrafo que se acaba de insertar.
5. Guarde el documento actual
Dispatch.call(document, "SaveAs", new Variant("C:
abc.doc")); // Guardar nuevo documento
6. Liberar hilo COM
ComThread.Release(); // Liberar hilo COM.
Según el archivo de ayuda de Jacob, el recolector de basura de Java no manejará el reciclaje de subprocesos COM
Código de prueba completo: Variante;
importar com.jacob.com.ComThread;
p>
clase pública StudyJacob {
public static void main(String[] args) {
ComThread.InitSTA();// Inicializa el hilo de com, ¡muy importante! put((Dispatch) wordObject, "Visible", new Variant(true));// new Variant(true) indica que la aplicación de palabras es visible
//Propiedades del documento instanciadas
Enviar documentos = objWord.getProperty("Documents").toDispatch(); // los documentos representan todas las ventanas de documentos de Word (Word es una aplicación de múltiples documentos)
/Agregar un nuevo documento de Word, documento actualmente activo
Dispatch documentos = Dispatch.call( documents, "Add");// Busque el párrafo que acaba de ingresar y establezca el formato
Dispatch lastParagraph = Dispatch.call (párrafos , "Artículo",
new Variant(paragraphCount)).
toDispatch(); // Último párrafo
Dispatch lastParagraphRange = Dispatch.get (lastParagraph, "Rango").put(fuente, "Nombre", nueva variante("Canción")); //
Dispatch.put(fuente, "Tamaño", nueva variante(12)); petit-four
Dispatch.call(document, "SaveAs", new Variant("C:
abc.doc") // Guardar nuevo documento p>
ComThread.Release(); // Libera el hilo de comunicación. Según la documentación de ayuda de Jacob, el recolector de basura de Java no manejará el reciclaje de subprocesos de com
}
}