Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar Jacob para obtener comentarios de documentos de Word?

¿Cómo utilizar Jacob para obtener comentarios de documentos de Word?

1. Es muy importante inicializar el hilo COM; de lo contrario, habrá una excepción de que el objeto no se puede crear conjuntamente cuando se crea el objeto COM por segunda vez (consulte el archivo de ayuda de Jacob para completar la operación de COM). componente, debe llamar al método de liberación

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

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

}

}