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.Page.setZoom メソッド.
正常に構築できます VwaControl
物体
vwaControl = new Vwa.VwaControl("ctl00_PlaceHolderMain_VisioWebAccess");
でもわかります null
電話するとき getActivePage()
このコントロールについて。
他にも構築してみました VwaControl
ページの他の ID を使用しましたが、どれも有効ではありません。「ID {0} には VwaControl が存在しません」のようなエラーが表示されます。vwaControl._control._zoomControl._fitButton._clickDelegate からツリーをたどろうとしましたが、そのデリゲートを起動する方法がわかりません。
「自動ズーム・トゥ・フィット」機能を実装した人はいますか? VisioWebAccess.aspx
ページ?
解決
Visio ドキュメントを自動調整するために ASPX を変更することはあきらめましたが、代わりに別の解決策を見つけました。
ファイルを保存する前に、Visio で [ウィンドウに合わせる] を選択します。この表示設定はファイルとともに保存され、Visio Web Services を使用してファイルを開くと、ファイルは「ウィンドウに合わせる」モードで開きます。
同様に、図面の特定の部分をズームインして保存すると、同じズームでロードされます。
他のヒント
から スタックオーバーフロー ハンドラーを「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% に設定し、vwaControl を取得するために Visio Web パーツ ID("WebPartWPQ3") を渡しました。期待どおりに動作し、ページの読み込み時にズームレベルを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>