1
我目前正在使用這個偉大的工具Jacob,但我得到了一些非常奇怪的東西。讀取一個MS Word文件,我將文檔標記爲文件,並且對於我獲得的每個令牌,我還希望擁有頁碼和行號。 奇怪的是,它只有在我自己啓動MSWord並從Jacob獲得實例時纔有效。如果Java啓動一個新實例,我無法獲得這些信息。另一點是我從文件中獲得很多信息,這很好,所以看起來好像唯一的麻煩就是處理信息屬性。我的代碼JACOB:無法從MS Word中獲取信息屬性
配件有:
ActiveXComponent myApplication = ActiveXComponent.connectToActiveInstance("Word.Application");
if (myApplication == null) {
myApplication = new ActiveXComponent("Word.Application");
}
Dispatch myDocuments = myApplication.getProperty("Documents").toDispatch();
Dispatch myDocument = getOpenedDocument(myDocuments, pFilePath);
....
Dispatch myParagraphs = Dispatch.call(myDocument, "Paragraphs");
Dispatch myParagraph = Dispatch.call(myParagraphs, "Item", new Variant(1)).toDispatch();
Dispatch myParagraphRange = Dispatch.get(myParagraph, "Range").toDispatch();
那麼對於爲例,當我嘗試:
myText = Dispatch.get(myParagraphRange, "Text").toString();
我得到的一段內容。但隨着:
int myPageNumber = Dispatch.call(myParagraphRange, "Information", 3).getInt();
當且僅當的MSWord不是由自己開始,我得到:
com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: Information
Description: Le serveur a généré une exception.
看來,「信息」屬性是與Word有問題???