【问题标题】:How to change the active Page in Visio through JACOB Library如何通过 JACOB 库更改 Visio 中的活动页面
【发布时间】:2012-03-28 16:02:50
【问题描述】:

我可以使用 Visio 中的 VBA 代码(使用宏记录器)将 Visio 中的 activePage 从 X Page 更改为“Main”页面

Application.ActiveWindow.Page = Application.ActiveDocument.Pages.ItemU("Main")

我尝试使用 JACOB 库在 java 中翻译它。

visio.projects = new ActiveXComponent("Visio.Application"); 
visio.projects.setProperty("Visible", new Variant(true));
Dispatch documents = 
     new ActiveXComponent(visio.projects.getProperty("Documents").toDispatch());
Dispatch.call(documents, "open", new Variant(fileName));
// up now a try for vba Code Translation
Dispatch activeWindow = Dispatch.get(visio.projects,"ActiveWindow").toDispatch();
Dispatch page = Dispatch.get(activeWindow, "page").toDispatch();
Dispatch activeDocument = Dispatch.get(visio.projects, "ActiveDocument").toDispatch();
Dispatch pages = Dispatch.get(activeDocument, "Pages").toDispatch();
//Dispatch actualPage = Dispatch.call(pages, "ItemU", new Variant("Main")).toDispatch(); // goes wrong
// What is next???

我正在努力完成,但直到现在我还没有改进。

【问题讨论】:

    标签: java visio jacob


    【解决方案1】:

    它适用于此代码。

    // up now a try for vba Code Translation
    ActiveXComponent activeWindow = new ActiveXComponent(visio.projects.getProperty("ActiveWindow").toDispatch());  
    ActiveXComponent activeDocument = new ActiveXComponent(visio.projects.getProperty("ActiveDocument").toDispatch());
    ActiveXComponent pages = new ActiveXComponent(activeDocument.getProperty("Pages").toDispatch());
    Dispatch itemU = ActiveXComponent.call(pages, "itemU", "Main").toDispatch();
    activeWindow.setProperty("Page", itemU);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 2017-09-23
      相关资源
      最近更新 更多