在Visio Web Access ASPX中自动缩放至适合
-
09-12-2019 - |
题
我试图设置通过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>