在 Visio Web Access ASPX 中自动缩放以适合

Automatically zoom-to-fit in Visio Web Access ASPX

本文关键字:缩放 Visio Web Access ASPX      更新时间:2023-09-26

这个问题也在 sharepoint.stackexchange.com,但未能获得意见或回复,所以我在这里发布。

我正在尝试设置通过 Visio Web 服务显示的 Visio 文档的缩放级别。

http://mysite/_layouts/VisioWebAccess/VisioWebAccess.aspx?id=/Shared%20Documents/MyDiagram.vdw

我想使用"适合页面"缩放级别,这是通过按工具栏右侧的按钮实现的。我的第一个想法是通过javascript点击按钮,但没有立即获得成功,并且还偶然发现了MSDN关于Visio Services JavaScript API中的对象,Vwa.VwaControl.getActivePage方法和Vwa.Page.setZoom方法的文章。

我可以成功地构造一个VwaControl对象

vwaControl = new Vwa.VwaControl("ctl00_PlaceHolderMain_VisioWebAccess");

但是当我在此控件上调用getActivePage()时,我会null

我尝试使用页面上的其他 id 构造其他 VwaControl,但它们都无效 - 我收到类似"id {0}不存在 VwaControl "之类的错误。我尝试从vwaControl._control._zoomControl._fitButton._clickDelegate向下遍历树,但我不知道如何触发该委托。

有没有人在VisioWebAccess.aspx页面中实现了"自动缩放以适应"功能?

请参阅 sharepoint.stackexchange.com 的答案 - 缩放和定位保存在文档中,因此请在此处设置。我无法使用javascript控制缩放。

如果您按照getZoom文档中的示例进行操作,即将处理程序添加到"diagramComplete",则可以获得对活动页面的有效引用...即

function zoomVWAControl()
{
    vwaControl= new Vwa.VwaControl("WebPartWPQ2");  
    vwaControl.addHandler("diagramcomplete", onDiagramComplete);
}
function onDiagramComplete()
{
 try{
        vwaPage = vwaControl.getActivePage();
        var zoomLevel = vwaPage.getZoom();
        vwaPage.setZoom(Number(200));
    }
    catch(err){
        alert(err);
    }
}