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

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

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

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

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

但我明白了 null 当我打电话 getActivePage() 在这个控制。

我试过构建其他 VwaControl 使用页面中的其他id,但它们都无效-我得到一个错误,如"id{0}的VwaControl不存在"。我试过从vwaControl遍历树。控制。_zoomControl。_fitButton._clickDelegate但我不知道如何解雇该委托。

有没有人在 VisioWebAccess.aspx 佩奇?

有帮助吗?

解决方案

我已经放弃了尝试修改ASPX以自动适应Visio文档,而是找到了另一种解决方案。

在保存文件之前,在Visio中选择"适合窗口"。此视图首选项与文件一起保存,当使用Visio Web服务打开时,该文件将以"适合窗口"模式打开。

以同样的方式,放大绘图的特定部分并保存将导致它以相同的缩放加载。

其他提示

叠流/叠流 将处理程序添加到'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);
    }
}

我已将缩放级别设置为21%,并传递Visio webpart id("WebPartWPQ3")以获取vwaControl。它按预期工作,并在页面加载时将缩放级别设置为21。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
var vwaControl; 
var vwaPage;
$(document).ready(function(){
vwaControl= new Vwa.VwaControl("WebPartWPQ3"); 
vwaControl.addHandler("diagramcomplete", onDiagramComplete);
});
function onDiagramComplete(){ 
    try{ 
        vwaPage = vwaControl.getActivePage();         
        var zoomLevel = '21';  
        vwaPage.setZoom(Number(zoomLevel)); 
    } 
    catch(err){ 
        alert(err); 
    } 
} 
</script>
许可以下: CC-BY-SA归因
scroll top